我在spring boot应用程序中有这个配置:
spring:
application:
name: my-app
profiles:
active: ${ENVIRONMENT}
cloud:
config:
uri: http://localhost:8888
我的配置服务器读取以下文件:
我-APP-dev.yaml
prop: dev property
我-APP-pro.yaml
prop: pro property.
我启动了spring boot app设置-DENVIRONMENT=dev
,正确加载了dev外部Git属性。
当我注入环境时,让我们说一个控制器然后env.getActiveProfiles()
按预期得到“dev”。
我想从git配置中添加更多配置文件。例如:
我-APP-dev.yaml
prop: dev property
spring:
active:
profiles: dev,business1
我-APP-pro.yaml
prop: dev property
spring:
active:
profiles: pro,business2
以便env.getActiveProfiles()
返回["dev","business1"]
。但它返回的是最初的"dev"
。
怎么可以这样做?
更新
根据Dave Syer的建议,我尝试在Git文件中使用spring.profiles.include
,但新配置文件未添加到环境中:
我-APP-dev.yaml
prop: dev property
spring:
profiles:
include: business1
我-APP-pro.yaml
prop: dev property
spring:
profiles:
include: business2
environment.getActiveProfiles() ---> "dev"
答案 0 :(得分:0)
将spring-boot更新为1.5.4。
我在Mac上测试了相同的情况,我发现不同版本的弹簧表现不同。
当我使用Spring Boot 1.3.8.RELEASE和Spring Cloud Brixton.SR7时,我将[dev]
配置文件作为活动配置文件(也使用Spring Boot 1.4.5.RELEASE)
当我使用Spring Boot 1.5.4.RELEASE和Spring Cloud Dalston.SR1时,我得到了
[business1, dev]
个人资料作为有效个人资料
所以我认为这是Spring Boot 1.3.x和1.4.x中的一个错误