[英]Spring Boot multiple profiles works in IDE but not from command line
我有一个带有几个Java Config类的Spring Boot应用程序。 每个类都有其自己的@Profile
名称。 在程序参数设置为--spring.profiles.active=config1,config2
的情况下从Eclipse运行应用程序时--spring.profiles.active=config1,config2
服务器将按预期运行,同时运行两个Config类的所有bean。
但是,当我尝试使用--spring.profiles...
从命令行启动应用程序时--spring.profiles...
只有一个配置文件的bean正在运行,顺序无关紧要。 仅按字母顺序的最后一个概要文件正在运行。 即使日志说
The following profiles are active: config1,config2
仍然没有config1
的bean启动。
还尝试将props文件中的spring.profiles.include
设置为相同的结果。
有任何想法吗?
这个问题仍然让我感到困惑。 如果隔离使用了任何概要文件,则它们可以工作,但是将两者结合使用时,将永远不会创建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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.