springcloud集成nacos作为远程配置中心
之前我们分析了springcloud提供的默认的获取配置中心的客户端,本次分析下nacos如何与springcloud合作,获取nacos远程服务中的配置
一、基本操作
1、引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
2、配置文件
spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=localhost:8848
...
3、启动项目
二、实现原理
1、原理由于我们之前分析了cloud原本提供的获取远程配置中心的入口,所以看过的朋友应该就能知道基本的原理了
如上图,nacos中配置了org.springframework.cloud.bootstrap.BootstrapConfiguration
上午分析了这个数据是在cloud第二次创建SpringApplicaiton时更改sources为BootstrapImportSelectorConfiguration而触发的
2、看下NacosConfigBootstrapConfiguration
创建了NacosPropertySourceLocator
3、NacosPropertySourceLocator
NacosPropertySourceLocator实现了cloud定义的接口,重写了locate方法
4、PropertySourceBootstrapConfiguration对象的创建
该类是cloud提供的sprign.factories文件中配置的,上文也有讲过,也是org.springframework.cloud.bootstrap.BootstrapConfiguration类型的
改对象主要实现了ApplicationContextInitializer接口,在它的initialize方法中会调用NacosPropertySourceLocator的locate方法
补充:配置服务地址是在创建NacosConfigProperties时加载的