spring cloud config
在我们了解spring cloud config之前,我可以想想一个配置中心提供的核心功能应该有什么
spring cloud config可以完美的支持以上所有的需求。
spring cloud config项目是一个解决分布式系统的配置管理方案。它包含了client和server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。spring cloud使用git或svn存放配置文件,默认情况下使用git,我们先以git为例做一套示例。
首先在github上面创建了一个文件夹config-repo用来存放配置文件,为了模拟生产环境,我们创建以下三个配置文件:
每个配置文件中都写一个属性neo.hello,属性值分别是 hello im dev/test/pro 。下面我们开始配置server端
server 端
1、添加依赖
只需要加入spring-cloud-config-server包引用既可。
2、配置文件
3、启动类
启动类添加@enableconfigserver,激活对配置中心的支持
到此server端相关配置已经完成
4、测试
返回信息如下:
上述的返回的信息包含了配置文件的位置、版本、配置文件的名称以及配置文件中的具体内容,说明server端已经成功获取了git仓库的配置信息。
返回:neo.hello: hello im dev
仓库中的配置文件会被转换成web接口,访问可以参照以下的规则:
以neo-config-dev.properties为例子,它的application是neo-config,profile是dev。client会根据填写的参数来选择读取对应的配置。
client 端
主要展示如何在业务项目中去获取server端的配置信息
引入spring-boot-starter-web包方便web测试
需要配置两个配置文件,application.properties和bootstrap.properties
application.properties如下:
bootstrap.properties如下:
特别注意:上面这些与spring-cloud相关的属性必须配置在bootstrap.properties中,config部分内容才能被正确加载。因为config的相关配置会先于application.properties,而bootstrap.properties的加载也是先于application.properties。
启动类只需要@springbootapplication注解就可以
4、web测试
使用@value注解来获取server端参数的值
<a href="https://github.com/ityouknow/spring-cloud-starter">示例代码</a>