Spring 引导 + Spring 云配置 - 如何从 Git 外部配置添加更多配置文件

Spring Boot + Spring Cloud Config - How to add more profiles from the Git external configuration

我在 spring 引导应用程序中有此配置:

spring:
  application:
    name: my-app
  profiles:
    active: ${ENVIRONMENT}
  cloud:
    config:
     uri: http://localhost:8888

我的配置服务器读取以下文件:

我的应用-dev.yaml

prop: dev property

我的应用-pro.yaml

prop: pro property.

我启动 spring 启动应用程序设置 -DENVIRONMENT=dev,正确加载开发外部 Git 属性。

当我在假设控制器中注入环境并执行 env.getActiveProfiles() 时,我得到了预期的 "dev"。

我想从 git 配置中添加更多配置文件。例如:

我的应用-dev.yaml

prop: dev property
spring:
  active:
    profiles: dev,business1

我的应用-pro.yaml

prop: dev property
spring:
  active:
    profiles: pro,business2

所以env.getActiveProfiles()returns["dev","business1"]。然而它returns是最初的"dev"

这是怎么做到的?

更新:

根据 Dave Syer 的建议,我尝试在 Git 文件中使用 spring.profiles.include,但新配置文件未添加到环境中:

我的应用-dev.yaml

prop: dev property
spring:
  profiles:
    include: business1

我的应用-pro.yaml

prop: dev property
spring:
  profiles:
    include: business2

environment.getActiveProfiles() ---> "dev"

将您的 spring-boot 更新到 1.5.4。

我在 Mac 上测试了相同的案例,我发现 spring 不同版本的行为不同。

当我将 Spring Boot 1.3.8.RELEASE 与 Spring Cloud Brixton.SR7 一起使用时,我得到了 [dev] 配置文件作为活动配置文件(还有 Spring 引导 1.4.5.RELEASE)

当我使用 Spring Boot 1.5.4.RELEASE 和 Spring Cloud Dalston.SR1 时,我得到了 [business1, dev] 配置文件为活动配置文件

所以我认为这是 Spring Boot 1.3.x 和 1.4.x

中的错误