问题描述
@Configuration
@ConfigurationProperties(prefix = "queues")
public class QueueProperties {
String queuename;
String queuemanager;
//Rest code
}
我在配置文件中为jar bean给出了bean定义。
@Bean
public com.jar.class.path getQueueProperties() {
return new com.jar.class.path.QueueProperties();
}
但是当应用程序启动时,它使用的是我的bean类的属性,而不是为jar类bean定义的属性。
queue:
queueManager: 'queuemanager'
queuename: 'queuename'
jar:
class:
queue:
queueManager: 'queuemanager'
queuename: 'queuename'
我想将yml中定义的属性用于jar文件bean。可以解决这个问题吗?
解决方法
您可以使用Spring配置文件。
queue:
queueManager: 'queuemanager'
queuename: 'queuename'
---
spring:
profiles: jar
queue:
queueManager: 'queuemanager'
queuename: 'queuename'
您可以在命令行上使用--spring.profiles.active = jar来使用您的jar配置文件。
您不应将配置用作普通的Bean,请执行以下操作:
@Configuration
public class MyConfiguration {
@Bean
@ConfigurationProperties(prefix = "queue")
public com.jar.class.path getQueueProperties() {
return new com.jar.class.path.QueueProperties();
}
}
public class QueueProperties {
String queuename;
String queuemanager;
//Rest code
}