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
中的错误
我在 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
中的错误