spring boot 1.2.5 @Configuration @Autowired 注解为空? [英] spring boot 1.2.5 @Configuration @Autowired annotation null?

查看:57
本文介绍了spring boot 1.2.5 @Configuration @Autowired 注解为空?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

PrimaryDatasourceProperties.java 获取application.properties 内容,没错.

DatasourceConfig.java 里面的方法 @Bean ... primaryDataSource() 没有 primaryDatasourcePropertiesprimaryDatasourcePropertiesnull,是@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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆