【发布时间】:2017-04-20 07:04:59
【问题描述】:
每个环境都有不同的配置服务器。每个 Spring Boot 应用程序都应该针对其相应的配置服务器。我试图通过在 bootstrap.properties 文件中设置配置文件来实现这一点,例如:
spring.application.name=app-name
spring.cloud.config.uri=http://default-config-server.com
---
spring.profiles=dev
spring.cloud.config.uri=http://dev-config-server.com
---
spring.profiles=stage
spring.cloud.config.uri=http://stage-config-server.com
---
spring.profiles=prod
spring.cloud.config.uri=http://prod-config-server.com
然后我设置了 cla -Dspring.profiles.active=dev 但加载的配置服务器始终是文件中的最后一个设置(即,将在上述设置中加载 prod 配置服务器,然后如果删除 prod,将加载 stage )。
是否可以为云配置服务器设置引导配置文件?我关注了this example,但似乎无法正常工作。值得一提的是,这些配置文件非常适合加载正确的配置(即,如果开发配置文件处于活动状态,则会加载 app-name-dev.properties),但不会从正确的配置服务器中提取。
【问题讨论】:
-
这只适用于 yaml 文件而不是属性文件 (afaik)。只需添加
bootstrap-[profile].properties即bootstrap-dev.properties,它将包含所需的(覆盖)配置。
标签: java spring-boot spring-cloud-config spring-profiles