【发布时间】:2019-11-24 14:55:36
【问题描述】:
在配置类上使用 autowired 时,我遇到了 spring boot 的问题。 我通过在 github 上创建一个小的 spring boot project 来最小化这个问题。
我创建了 MyBean 类并将其声明为 @Component 并尝试自动装配声明为 @ 的 MyConf 类配置(并读取文件 myconfig.properties 中的属性)。理论上,一切都在 spring 上下文中,但是当应用程序启动时,MyBean 中的 myConfigProp 变量为 null。
我哪里错了?
我也尝试了以下解决方案,都不起作用:
- 在 MyBean 中插入 @DependsOn
- 评论了@Component并将MyBean配置为spring的@Bean
我做的最后一个测试(不在 github 项目上)是在 MyBean 构造函数中将 MyConfigProp 作为参数传递,它成功了。
@Component
public class MyBean {
String message;
public MyBean(MyConfigProp myConfigProp) {
this.message = myConfigProp.getMessage();
}
}
我有点困惑。
【问题讨论】:
标签: spring spring-boot autowired