昨天做了 spring cloud config 配置中心 获取存在git仓库的配置文件 ,提到了spring boot 读取配置文件优先级的情况,
如果是本地配置文件,那么优先级是 boostrop.properties > application.properties > application.yml
问题来了,从git 仓库获取的配置文件 ,不同名字的文件【可能是properties或yml】 ,如果其中有相同的字段但是对应的value不同,远程服务器调用这个字段,那么value会是多少?
事实上经过多次测试发现:
(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
(1)当前文件获取配置顺序
浏览器输入网址 http://localhost:200/getConfig?name=爱你
获取的是 gittest2.yml文件内容 ,换多个浏览器多次访问,都没有改变
(2)更换顺序,重启消费者端口200
当前文件获取配置顺序
浏览器输入网址 http://localhost:200/getConfig?name=我也爱你
获取的是 gittest.properties文件内容 ,换多个浏览器多次访问,都没有改变
经过测试发现,在不同文件【可能是properties或者yml】,如果其中有相同的字段,那么左边的文件的这个字段的值会被右边文件的覆盖,不区分properties和yml优先级
spring cloud --- config 从git 获取文件【 可能是yml或 properties】遇到有相同字段的取值规则
原文:https://www.cnblogs.com/c2g5201314/p/12898636.html