遵循这些说明here我希望从application.properties文件加载我的MQConnection类属性。
问题是只有在每个属性上放置@Value(" $ {attributename}")注释时才会加载属性。我不想标记每个属性,我宁愿设置类前缀,让spring关联并将我的类属性映射到application.properties中的类属性。
我的设置:
- application.properties位于src / main / resources
中的类路径中- 我的@Configuration类也有@EnableConfigurationProperties
- 我的MQConnection类同时包含@Component和@ConfigurationProperties(前缀=" mq")
配置类:
@Configuration
@EnableAutoConfiguration
@EnableConfigurationProperties
@ComponentScan
public class Application implements CommandLineRunner {
...
}
MQConnection类:
@Component
@ConfigurationProperties(prefix="mq")
public class MQConnection{
@Value("${mq.hostname}") // will only work if @Value is here, don't want this
private String hostname;
private int port;
private String qmanager;
private String queue;
private String channel;
}
application.properties:
mq.hostname=localhost
mq.port=5120
mq.qmanager=MyQueueManager
mq.queue=MyQueue
mq.channel=MyChannel
答案 0 :(得分:2)
你的MQConnection
类不是Java bean(没有getter和setter),所以Spring无法绑定它。如果您不喜欢getter和setter,请使用Groovy或Project Lombok。
答案 1 :(得分:0)
此问题的根本原因可能是由于@Configuration错过了配置文件中的@EnableConfigurationProperties批注。