如何从Spring Cloud Config Server读取多个yml配置文件
Spring Config Server 同时加载基础配置与环境配置方案
Spring Cloud Config 默认就支持合并加载基础配置(不带profile后缀的${spring.application.name}.yml)和对应环境的profile配置,相同key的情况下profile配置优先级更高会覆盖基础配置值,不同key会直接合并保留。
客户端配置步骤
只需要在配置客户端的bootstrap.yml(优先级高于application配置,必须用bootstrap文件存储Config相关配置)中添加以下配置即可:
- 方案1:通过全局激活profile实现
spring: application: name: test # 对应基础配置文件前缀,匹配test.yml profiles: active: dev # 激活dev环境,自动匹配加载test-dev.yml cloud: config: uri: http://<你的Config Server地址>:<端口> # 替换为实际配置服务端地址
- 方案2:单独指定Config拉取的profile(不影响应用全局profile设置)
spring: application: name: test cloud: config: uri: http://<你的Config Server地址>:<端口> profile: dev # 仅指定Config拉取dev后缀的配置文件
验证方式
引入actuator依赖并开启env端点权限后,访问客户端的/actuator/env接口,可在配置来源列表中同时看到test.yml和test-dev.yml两个配置源的内容。
特殊场景适配
如果需要拉取的配置前缀和应用名称不一致,可以显式指定配置前缀:
spring: cloud: config: name: test # 显式指定拉取test前缀的配置,不受spring.application.name影响 profile: dev uri: http://<你的Config Server地址>:<端口>
注意:如果加载不生效,请先检查Config Server端的配置存储路径、分支配置是否正确,确保两个yml文件已经存放到Config Server指定的搜索目录中。
内容的提问来源于stack exchange,提问作者Susmitha
相关产品推荐
相关产品推荐

