我目前正在使用扩展Spring RestTemplate的OAuth2RestOperations,我想指定内容类型标题.
我唯一能做的就是在请求期间明确设置我的标题:
public String getResult() {
String result = myRestTemplate.exchange(uri, HttpMethod.GET, generateJsonHeader(), String.class).getBody();
}
private HttpEntity<String> generateJsonHeader() {
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
return new HttpEntity<>("parameters", headers);
}
Run Code Online (Sandbox Code Playgroud)
但实际上很高兴能够在bean初始化期间一劳永逸地设置它,并直接使用getforObject方法而不是交换.
我有一个JTextField,我想setMargin.但是当我设置任何边框时,它都不能正常工作.它的保证金功能不起作用.这是我的代码;
import java.awt.Color;
import java.awt.Insets;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class ImageField {
public static void main(String[] args) throws IOException {
JTextField textField = new JTextField();
textField.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
textField.setMargin(new Insets(0, 20, 0, 0));
JOptionPane.showMessageDialog(null, textField, "",
JOptionPane.PLAIN_MESSAGE);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我告诉这一行,它是有效的
//textField.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY));
Run Code Online (Sandbox Code Playgroud) 我想实现类似于Spring Data的东西.
开发人员可以定义一些接口,向接口添加自定义注释以标记它们(我的代码将为接口创建代理实例)并通过@Autowire将它们用于必要的服务.
在spring初始化期间,我需要获取所有接口的列表(正确注释)<为接口创建动态代理并将它们注入到必要的位置.
代理创建,创建bean注入很好.现在的问题是:
如何查找所有接口的列表?
它们可以放在任何包装中(或者甚至放在一个单独的罐子里)并且有任何名称.扫描类路径上存在的所有类需要太多时间.
我找到了问题,但它需要基础包启动.
试过一个基于思考的解决方案,但它再次需要基础包或者从root开始需要非常大的时间来扫描所有可用的类.
Reflections reflections = new Reflections("...");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(<annotation>);
Run Code Online (Sandbox Code Playgroud)
所以我需要一个完整的基础包列表Spring扫描在包中找到我的接口(必须要快得多).
信息在SpringContext中绝对可用.我试图调试并看看basePackages []是如何初始化的,但是有很多私有类/方法用于初始化,我只是没有看到如何从ApplicationContext正确访问basePackages.
什么更好?我们将开始一个新的Web项目,这是一个选择哪种技术的问题.项目包括Spring MVC + WebFlow.在支持,扩展和绩效方面有任何好的/坏的经验吗?
谢谢.
我有一个类whitch扩展JPanel:
public class ButtonPanel extends JPanel {
private label;
public ButtonPanel() {
label=new JLabel("waiting for click");
add(label);
}
public void setButtonText() {
label.setText("just clicked");
}
}
Run Code Online (Sandbox Code Playgroud)
我有几个添加到JFrame的类的实例.我想创建一个MouseAdapter类的实例,然后将它们作为鼠标监听器添加到我的JFrame上的所有ButtonPanel组件.我看:
ButtonPanel butt1 = new ButtonPanel();
ButtonPanel butt2 = new ButtonPanel();
ButtonPanel butt3 = new ButtonPanel();
//... here goes code which add ButtonPanels to JFrame
MouseAdapterMod mam = new MouseAdapterMod();
butt1.addMouseListener(mam);
butt2.addMouseListener(mam);
butt3.addMouseListener(mam);
Run Code Online (Sandbox Code Playgroud)
MouseAdapterMod类我希望与另一个分开,并找到它自己的包.它应该是这样的:
public class MouseAdapterMod extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
//here goes the code of calling setButtonText method of …Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,当点击鼠标时,将绘制一个圆圈.到目前为止我写的下面的代码.
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.event.*;
import java.awt.geom.*;
public class test extends JFrame implements ActionListener, MouseListener {
Shape circle = new Ellipse2D.Float(10, 10, 10, 10);
public test () {
setSize(250,150);
addMouseListener(this);
}
public static void main(String[] args) {
//TODO code application logic here
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
test frame = new test();
frame.setVisible(true);
}
});
}
public void actionPerformed(ActionEvent ae) {
}
public void drawCircle(int x, int y) …Run Code Online (Sandbox Code Playgroud) resultCombo = new JComboBox();
resultCombo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent ie) {
sampleText=resultCombo.getSelectedItem().toString();
System.out.println("SampleText : "+sampleText);
}
});
output:
SampleText : selectedword
SampleText : selectedword
Run Code Online (Sandbox Code Playgroud)
为什么在组合框中选择项目时会调用此事件两次.
在Spring Framework 5的更新日志中,它声明它们删除了JasperReports的兼容性.我可以使用哪种报告工具,它与Spring FW 5兼容?
我有一个简单的Hello-World Spring Boot应用程序,包含JPA存储库和Hibernate.的pom.xml样子:
...
<properties>
<springframework.version>1.5.1.RELEASE</springframework.version>
<validation-api.version>1.1.0.Final</validation-api.version>
<dbunit.version>2.5.3</dbunit.version>
<usertype.core.version>6.0.1.GA</usertype.core.version>
<validate.version>2.2.0</validate.version>
<strman.version>0.2.0</strman.version>
<reflections.version>0.9.10</reflections.version>
<javax.servlet.jsp-api.version>2.3.1</javax.servlet.jsp-api.version>
<rest-assured.version>3.0.1</rest-assured.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springframework.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<!-- We use Logback for logging. -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<!-- We use Jetty because it is cooler ;) -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId> …Run Code Online (Sandbox Code Playgroud) 我是Java世界和Spring启动的新手,我正试图通过ConfigurationProperties注释访问位于YAML文件中的一些配置值.
但每当我尝试在服务中的任何位置访问配置值时,我都会得到一个空值.
这是application.yml文件:
my_config:
test: "plop"
Run Code Online (Sandbox Code Playgroud)
这是ValidationProperties配置类:
@Configuration
@ConfigurationProperties(prefix = "my_config")
public class ValidationProperties {
@NotNull
private String test;
public void setTest(String test) {
this.test = test;
}
public String getTest() {
return this.test;
}
}
Run Code Online (Sandbox Code Playgroud)
使用它的验证器服务:
@Service
public class MyValidator implements ConstraintValidator<MyConstraint, MyEntity> {
@Autowired
private ValidationProperties validationProperties;
@Value("${my_config.test}")
private String test;
@Override
public boolean isValid(MyEntity entity, ConstraintValidatorContext context) {
System.out.println(this.test); // null value, why?
}
}
Run Code Online (Sandbox Code Playgroud)
我还在@EnableConfigurationProperties我的主类中添加了注释.
我不确定哪个注释应该做什么,但我显然在这里遗漏了一些东西.此外,如果我尝试从配置文件的getter访问值,我会得到一个异常:
System.out.println(this.validationProperties.getTest());
Run Code Online (Sandbox Code Playgroud)
会得到我 …
java ×10
spring ×5
swing ×4
spring-boot ×2
hibernate ×1
insets ×1
java-2d ×1
jpa ×1
jtextfield ×1
margin ×1
reporting ×1
spring-mvc ×1
tiles ×1
velocity ×1