如何解决导入的Jar的Spring bean属性被应用bean定义覆盖
@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
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。