说明
- 项目运行的前提条件:服务注册中心已经启动。
- 本项目的服务注册与发现是基于 Spring Cloud Consul 实现。具体内容博主写在另一篇博客:
- 本博客是 Spring Cloud 微服务化(精简完整版)的一部分。
配置中心简介
- Consul 提供了一个
Key/Value仓库来存储配置和其他元数据。 
- 在特定的
bootstrap时期配置会被加载到Spring 环境中。配置默认存储在/config 目录。根据应用名和激活的配置文件,模拟Spring Cloud Config解析属性的顺序创建多个PropertySource实例。例如,一个应用名为 “testApp” ,启用profile为 dev 的应用,以下配置源会被创建:config/testApp,dev/ config/testApp/ config/application,dev/ config/application/- 偏特定的配置在上面,偏通用的配置在底下。在
config/application/目录下的配置适用于所有使用 consul 管理配置的应用 。在config/testApp目录下的配置仅适用于服务名为testApp的服务实例。
项目构建
- 博主另一篇博客中,构建了一个基础的微服务项目: awesome-user-server。本博客在这个项目的基础上,引入配置中心。

- 添加了一个 bootstrap.yml 配置文件
依赖
- 要启动 Spring Cloud Consul 配置中心服务,只要用引入
spring-cloud-starter-consul-config即可。 - 项目(awesome-user-server)中实际引入的是:
spring-cloud-starter-consul-all,它包含了 :
- 因此,不需要做任何改动
配置
- 可以通过以下属性进行自定义Consul 配置。
bootstrap.ymlspring: cloud: consul: config: enabled: true prefix: configuration defaultContext: apps profileSeparator: '::'enabled设置这个属性为 false 将会关闭 Consul 配置prefix为配置信息设置基础目录defaultContext设置适用于所有应用的目录profileSeparator设置分隔符的值,用于分隔属性源配置文件名(profiles)
- 博主当前的配置:
bootstrap.ymlspring: cloud: consul: config: enabled: true prefix: config defaultContext: awesome-user-server profileSeparator: ',' data-key: configuration format: YAML- 这个配置的作用:
- Consul 配置中心使用 YAML 格式的配置文件
- 本项目会读取 Consul 配置中心
Key/Value仓库中 key 为config/awesome-user-server/configuration对应的 Value 值。- 这个 Value 值是一个 YAML 格式的配置文件的内容。它用于覆盖默认的配置。
- 例如,项目中的
application.yml的配置项key1 = value1。假设此时Value 值(它是一个YAML格式的文档内容)也包含key1配置项,而且key1 = value2。那么,项目实际读取配置项key1时,取到的值是value2。
- 例如,项目中的
- 这个 Value 值是一个 YAML 格式的配置文件的内容。它用于覆盖默认的配置。
测试
引用默认配置
- 默认情况下,使用的数据库为 andy_test。
- 请求获取用户信息接口:
通过配置中心修改默认配置
- 通过修改
config/awesome-user-server/configuration的内容,覆盖默认配置: - 这里,修改连接的数据库,把
andy_test修改为andy_test_v0:
- 再次访问获取用户信息接口,发现信息内容已经发生了变化:
版权声明:本文为liqing0013原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

