spring.profiles.active 不兑现

fre*_*red 2 java spring spring-profiles spring-boot spring-properties

application.properties 
Run Code Online (Sandbox Code Playgroud)

我们有线路

spring.profiles.active=LOCALHOST
Run Code Online (Sandbox Code Playgroud)

application-DEV.properties
Run Code Online (Sandbox Code Playgroud)

,我们有这条线

spring.profiles.active=DEV,dbcache,metrics,AWS
Run Code Online (Sandbox Code Playgroud)

. 运行应用程序时

java -jar app.war -Dspring.profiles.active=DEV
Run Code Online (Sandbox Code Playgroud)

控制台输出说

The following profiles are active: LOCALHOST
Run Code Online (Sandbox Code Playgroud)

,即

-Dspring.profiles.active=DEV 
Run Code Online (Sandbox Code Playgroud)

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

小智 9

以防万一有人和我有同样的问题,请确保您的主类 args 传递到 spring。希望能帮助到你。

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢您添加该答案!这确实是一个很容易被忽视的同一最终问题的根源。 (2认同)