spring cloud --- config 从git 获取文件【 可能是yml或 properties】遇到有相同字段的取值规则

1.前言

 昨天做了 spring cloud config 配置中心 获取存在git仓库的配置文件 ,提到了spring boot 读取配置文件优先级的情况,

如果是本地配置文件,那么优先级是 boostrop.properties > application.properties > application.yml 

问题来了,从git 仓库获取的配置文件 ,不同名字的文件【可能是properties或yml】 ,如果其中有相同的字段但是对应的value不同,远程服务器调用这个字段,那么value会是多少?

事实上经过多次测试发现:

2.证明

(1)git仓库准备两个文件

gittest.properties 

 还有

gittest2.yml

 (2)在配置中心application 文件配置 ,设置端口为100

 配置中心端口100 验证能否从git获取文件

浏览器输入  http://localhost:100/master/gittest-1.properties

 浏览器输入   http://localhost:100/master/gittest2-1.yml

 显示可以获取

(3)配置一个 服务消费者,从配置中心获取数据 ,

具体怎么配置可以看我的另一篇随笔,这里就不多展示怎么配置了,

看一下application文件 ,端口为200

看一下 bootstrap文件,

 看一下controller层逻辑

配置好了后200消费者后,

先启动提前准备的一个注册中心端口为7001,然后启动配置中心100,再启动消费者200

 3.测试

(1)当前文件获取配置顺序

浏览器输入网址 http://localhost:200/getConfig?name=爱你

 

 获取的是 gittest2.yml文件内容 ,换多个浏览器多次访问,都没有改变

(2)更换顺序,重启消费者端口200

当前文件获取配置顺序

 浏览器输入网址 http://localhost:200/getConfig?name=我也爱你

 获取的是 gittest.properties文件内容 ,换多个浏览器多次访问,都没有改变

4.结论

经过测试发现,在不同文件【可能是properties或者yml】,如果其中有相同的字段,那么左边的文件的这个字段的值会被右边文件的覆盖,不区分properties和yml优先级

猜你喜欢

转载自www.cnblogs.com/c2g5201314/p/12898636.html