【发布时间】:2018-03-05 13:38:20
【问题描述】:
我有一个带有多个 Java Config 类的 Spring Boot 应用程序。每个类都有自己的@Profile 名称。当从 Eclipse 运行应用程序并将 Program Arguments 设置为
--spring.profiles.active=config1,config2
服务器按预期运行,两个 Config 类中的所有 bean 都在运行。
但是当我尝试使用--spring.profiles... 从命令行启动应用程序时,只有一个配置文件的 bean 正在运行,顺序无关紧要。它只是按字母顺序排列的最后一个正在运行的配置文件。即使日志说
The following profiles are active: config1,config2
config1 的 bean 仍然没有出现。
还尝试在props文件中设置spring.profiles.include,结果相同。
有什么想法吗?
【问题讨论】:
-
tra 使用
-Dspring.profiles.active=config1,config2从命令行 ehile 运行 -
您可以尝试改用
-Dspring.profiles.active=profile1,profile2吗?看看这是否有帮助。 -
不管配置文件设置为 D 参数还是程序参数,都是一样的。仅设置
config1,工作正常。仅设置config2,工作正常。两者都设置,只创建一个配置的 bean。配置文件的顺序无关紧要。在 Eclipse 中,配置是 inclusive 并且使用了两个配置文件。在命令行上有一个 override 行为。 -
您能再试一次,但要切换配置文件的顺序吗? (正在检查this other answer)
-
没有区别,总是运行带有
config2注释的 Config 类,但不是config1Config。在 Eclipse 中,顺序没有区别,两个配置都在运行(如预期的那样)。
标签: java spring spring-boot