【问题标题】:spring.profiles.active not honouredspring.profiles.active 不兑现
【发布时间】:2016-12-23 00:17:00
【问题描述】:

application.properties 

我们有这条线

spring.profiles.active=LOCALHOST

application-DEV.properties

,我们有这条线

spring.profiles.active=DEV,dbcache,metrics,AWS

。使用

运行应用程序时
java -jar app.war -Dspring.profiles.active=DEV

控制台输出显示

The following profiles are active: LOCALHOST

,即

-Dspring.profiles.active=DEV 

参数不被接受,应用仍然使用默认的 LOCALHOST 配置文件。

【问题讨论】:

  • 如果你把-D选项放在-jar前面会发生什么?

标签: java spring spring-boot spring-profiles spring-properties


【解决方案1】:

以防万一有人遇到和我一样的问题,请确保您的主类 args 已传递给 spring。希望对您有所帮助。

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

【讨论】:

  • 非常感谢您添加该答案!这确实是一个很容易错过相同最终问题的根源。
  • 是的,这个问题目前是谷歌搜索“spring.profiles.active not working”时最热门的问题。很容易忘记这样做,或者在重构时放弃它(这就是我来到这里的方式>.
  • ths,这个答案解决了我的问题
【解决方案2】:

java 命令的手册页显示:

java [ options ] -jar file.jar [ argument ... ]

也就是说,JVM 选项(例如属性设置)必须-jar(或主类)之前。之后的任何内容都被视为传递给main 的参数。

这实际上是有目的的,而不仅仅是迂腐——你可能有一个启动子 JVM 的工具(例如,Maven 可以做到这一点)并希望提供要在那里传递的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    相关资源
    最近更新 更多