spring boot 1.2.5 @Configuration @Autowired 注解为空? [英] spring boot 1.2.5 @Configuration @Autowired annotation null?
问题描述
PrimaryDatasourceProperties.java
获取application.properties
内容,没错.
DatasourceConfig.java
里面的方法 @Bean ... primaryDataSource()
没有 primaryDatasourceProperties
,primaryDatasourceProperties
是null,是@Autowired注入的,一直有问题
DatasourceConfig.java
inside the method @Bean ... primaryDataSource ()
no primaryDatasourceProperties
, primaryDatasourceProperties
is null, which is by @Autowired injected, it is always a problem
请问是什么原因?
顺便说一句:
DemoApplication.java
尝试加入EnableAutoConfiguration
并且PrimaryDatasourceProperties.java
试试 @Component
DemoApplication.java
try to joinEnableAutoConfiguration
And
PrimaryDatasourceProperties.java
try @Component
结果没有什么不同
代码如下:
resources/application.properties
datasource.primary.driver-class-name=com.mysql.jdbc.Driver
datasource.primary.url=jdbc:mysql://localhost:3306/demo?characterEncoding=utf8
datasource.primary.username=root
datasource.primary.password=
com.demo.config.PrimaryDatasourceProperties.java
@ConfigurationProperties(prefix="datasource.primary")
public class PrimaryDatasourceProperties {
private String driverClassName;
private String url;
private String username;
private String password;
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
com.demo.config.DatasourceConfig.java
@Configuration
public class DatasourceConfig {
@Autowired
private PrimaryDatasourceProperties primaryDatasourceProperties;
@Bean
@Primary
public DataSource primaryDataSource() {
// primaryDatasourceProperties is null ?
}
}
com.demo.DemoApplication.java
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(DemoApplication.class, args);
}
}
推荐答案
您必须将注释 @EnableConfigurationProperties
添加到 DemoApplication 或您的配置类.请参阅 关于该主题的手册.
You have to add the annotation @EnableConfigurationProperties
either to the DemoApplication or your configuration class. See the manual about that topic.
这篇关于spring boot 1.2.5 @Configuration @Autowired 注解为空?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!