【问题标题】:Spring Cloud Config Client multiple property files retrieve from same repoSpring Cloud Config Client 多个属性文件从同一个 repo 中检索
【发布时间】:2020-09-27 16:27:33
【问题描述】:

我需要检索具有区分环境名称的属性文件。

配置服务器正在监听这个 repo (https://github.com/tpande1/spring-cloud-config-repo/tree/master),它有:config-client-dev.properties、config-client-sbx.properties、config-client-test.properties 和 config-client-prod.properties

在客户端服务器中,我可以从上面的 github 存储库中读取以下配置。如何在客户端应用程序中指定的环境中读取这些不同的属性?

示例休息代码:

@GetMapping("/message") //Pick message(SBX, DEV, Test, PROD) from the propertyfile from github
public String getMessage() {

    return message;

}

bootstrap.yml:

弹簧: 个人资料:开发 应用: 名称:配置客户端 云: 配置: uri:http://localhost:1000 //配置服务器端口 简介:sbx,开发,测试,产品

management.endpoints.web.exposure.include: "*"

【问题讨论】:

  • 将 Spring Profile 添加到代码和 application.yml 但它似乎不起作用。 application.properties : spring.profiles.active=dev 其他代码:@Profile("dev") @GetMapping("/message") public String getMessage() { return message; }
  • 你能更新你的问题而不是在评论中编码吗?

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


【解决方案1】:

您可以在引导 yaml 文件中添加多个活动配置文件。在您拥有 spring.profiles.active 的选项和配置服务器中,您可以为每个配置文件添加搜索模式。

如以下模式匹配部分的链接中所述。 https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html

【讨论】:

  • 当我添加多个配置文件时,声明的第一个配置文件优先。例如。配置文件:dev、test、lab、prod.. 开发配置文件始终优先。我需要将它作为环境变量传递吗?我的应用在 K8s 上部署为容器镜像。
  • 您在所有文件中都有类似的属性吗?如果是,您是要全部使用还是只使用其中一种?
猜你喜欢
  • 2019-09-06
  • 2019-08-20
  • 2020-04-22
  • 1970-01-01
  • 2019-04-01
  • 2019-07-02
  • 2016-05-05
  • 2015-03-09
  • 2018-03-21
相关资源
最近更新 更多