当前位置:   article > 正文

一定要看的走坑之路!SpringCloud统一配置中心 config Server_located property source

located property source

先说下client拿config的配置文件的流程!,这个不了解,很容易进坑!

1.如果config client 的配置文件为application.properties的时候

client 启动项目时,直接找自己properties,如果这个时候项目中有引用properties中的属性的时,项目启动就直接报错,因为他根本就不会去config server中找,所以找不到,就启动不了项目!!而且显示fetch
config为localhost:8888说明他没有去config中拿配置文件。所以要把application.properties改名为bootstarp.properties

2.当config client的配置文件为bootstrap.properties的时候

这个时候,client先看自己的properties有没有eureka server的注册地址
1.如果有,就从自己的properties定义的defaultZone中注册到eureka server,并且找到注册在eureka server中的config server,于是就从config server中拿配置文件,拿到了之后再启动项目。
2.如果没有,就访问默认的eureka server地址:http://localhost:8761/eureka。如果eureka server在这上面,那么就找到了,如果不在,那么也找不到config server。

3.当git上一个分支有多个版本的properties的时候,如:client.properties,
client-dev.properties, client-test.properties

这个时候若client指定要拿dev。但是,config server这边则是把client.properties,
client-dev.properties这两个配置文件搞一起,再给client端。因此,假如client.properties,client-dev.properties这俩文件有相同的部分,你改了其中一个,并不会生效,因为他们是搞一起给client的。要改两个都要改

4.如果你想搞个config client端,一定记住除了勾选config client,还要自己添加依赖:spring-cloud-starter-bus-amqp,还有@RefreshScope

5.config server分发规则,按application name分发:

比如我这个master分支里面有两个文件。在这里插入图片描述
这里也相应的注册了client,gateway两个应用,他们都是config client端
在这里插入图片描述
config client端写的配置文件:
spring.cloud.config.discovery.service-id=config spring.cloud.config.discovery.enabled=true spring.cloud.config.profile=dev
就三条,也没有指定他们所需要的具体的properties名字,所以他们怎么辨别自己要获取哪一个config server上的properties文件呢?
!!!是通过自己的application name来获取自己对应文件的!
所以一开始我就设置了他们的应用名字和properties文件名字相同,所以能找到。
并且启动的时候你能够找到他有没有找到对应的properties文件。如果找到了的话,会在控制台出现:

b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {
   name='bootstrapProperties-configClient&
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/138997
推荐阅读