2016-11-16 16 views
5

到现在为止,我设置以下的环境变量在我~/.bash_profile如何从环境变量添加活动弹簧配置文件?

export SPRING_PROFILES_ACTIVE=local 

这把我的活泉水的个人资料。但现在,我想添加本地配置文件中定义application.properties其他配置文件,而不是更换他们。

Spring Boot documentation,有一个关于增加活动轮廓部分,但我看不到任何有关从环境变量中增加活动的配置文件。

我试图设置SPRING_PROFILES_INCLUDE环境变量,但这并没有影响。

如何做到这一点?

P.S:我使用Spring 1.4.2引导。

+0

你尝试过利用ConfigurableEnvironment http://docs.spring.io/spring-framework/docs/current/javadoc- api/org/springframework/core/env/ConfigurableEnvironment.html –

+1

不,我没有,但我更喜欢使用诸如Olszewski之类的解决方案。 –

回答

8

在默认配置文件除了

您可以介绍自己的环境变量在application.properties文件,旁边使用表达式定义的配置文件。例如,如果您当前的文件看起来是这样的:

spring.profiles.active=profile1,profile2 

与自定义环境变量,它会变成:

spring.profiles.active=profile1,profile2,${ADDITIONAL_APP_PROFILES:local} 

其中ADDITIONAL_APP_PROFILES是你设置,而不是SPRING_PROFILES_ACTIVE环境变量的名称。

local当变量未在当前环境中设置被使用。在这种情况下,名为local的配置文件将被激活。如果您未设置默认值并且环境变量不存在,则整个表达式将用作活动配置文件的名称。

没有默认除了轮廓

如果你想避免激活默认的配置文件,您可以删除占位符值和变量表达式前的逗号:

spring.profiles.active=profile1,profile2${ADDITIONAL_APP_PROFILES} 

,但在这种情况下,在当前环境下设置的变量必须以逗号开头:

export ADDITIONAL_APP_PROFILES=,local 
2

文档中您链接到下一句亲语法锻炼:

有时是有特定的配置文件的属性是添加到活动的配置文件,而不是有用替换它们。可以使用spring.profiles.include属性无条件地添加活动配置文件。

所以,你可以用命令行参数,启动应用程序:

-Dspring.profiles.include=${SPRING_PROFILES_INCLUDE} 
相关问题