如何从环境变量添加活动弹簧轮廓?

Ort*_*kni 6 spring spring-profiles spring-boot

到现在为止,我在我的设置中设置了以下环境变量~/.bash_profile:

export SPRING_PROFILES_ACTIVE=local
Run Code Online (Sandbox Code Playgroud)

这设定了我的活跃弹簧轮廓.但是现在,我想本地配置文件添加到其中定义的其他配置文件中,application.properties而不是替换它们.

Spring Boot文档中,有一节关于添加活动配置文件,但我没有看到从环境变量添加活动配置文件.

我试图设置SPRING_PROFILES_INCLUDE环境变量,但这没有效果.

这该怎么做?

PS:我正在使用Spring Boot 1.4.2.

Dan*_*ski 9

使用默认添加配置文件

您可以application.properties使用表达式在文件中,在定义的配置文件旁边引入您自己的环境变量.例如,如果您当前的文件如下所示:

spring.profiles.active=profile1,profile2
Run Code Online (Sandbox Code Playgroud)

使用自定义环境变量,它将变为:

spring.profiles.active=profile1,profile2,${ADDITIONAL_APP_PROFILES:local}
Run Code Online (Sandbox Code Playgroud)

其中ADDITIONAL_APP_PROFILES是您设置的环境变量的名称而不是SPRING_PROFILES_ACTIVE.

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

没有默认添加配置文件

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

spring.profiles.active=profile1,profile2${ADDITIONAL_APP_PROFILES}
Run Code Online (Sandbox Code Playgroud)

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

export ADDITIONAL_APP_PROFILES=,local
Run Code Online (Sandbox Code Playgroud)


Sto*_*ica 6

您链接到的文档中的下一句话:

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

因此,您可以使用命令行参数启动您的应用程序:

-Dspring.profiles.include=${SPRING_PROFILES_INCLUDE}
Run Code Online (Sandbox Code Playgroud)