Spring Boot + Spring Cloud Config - 如何从Git外部配置添加更多配置文件

时间:2016-04-08 12:17:06

标签: spring spring-boot spring-cloud spring-cloud-config

我在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"

1 个答案:

答案 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中的一个错误