繁体   English   中英

Spring Boot的多个配置文件可在IDE中使用,但不能从命令行使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM