我有一个带有几个Java Config类的Spring Boot应用程序。每个类都有自己的@Profile
名称。从Eclipse运行应用程序时,程序参数设置为
--spring.profiles.active=config1,config2
服务器按预期运行,并且两个Config类中的所有bean都在运行。
但是当我尝试从--spring.profiles...
命令行启动应用程序时,只有一个配置文件'豆子正在运行,顺序并不重要。它只是按字母顺序排列的最后一个配置文件。即使日志说
The following profiles are active: config1,config2
config1
的所有豆子都没有踢。
还尝试在道具文件中设置spring.profiles.include
,结果相同。
有什么想法吗?
答案 0 :(得分:0)
这个问题仍困扰着我。如果使用隔离的任何配置文件,它们都可以工作,但是当这两个配置文件合并时,永远不会创建config1
配置文件的bean。调试Spring启动时说,找到了配置并且正在进行预创建。但真正的bean永远不会被创建和返回。
我创建了一个包装类,它包装了config1
Java Config类中的一个bean,强制Spring从该特定配置创建bean。这不是问题的答案,也不是解决问题的方法,而是解决问题。
@Service
@Profile("config1")
public class DataConsumerWrapperService {
public DataConsumerWrapperService(final MessageParser mp) {
// Do nothing, just trigger the parser bean creation
}
}