springboot中nacos-client获取配置的实现方法
作者:趣开源
在springboot中使用nacos的小伙伴是不是跟我有一样的好奇,springboot中nacos-client是怎么获取配置的?今天我跟了一下代码,大致的流程弄懂了,分享给大家。
1、导入nacos的maven包
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.7</version> </dependency>
2、nacos-config-spring-boot-autoconfigure解析
我们就看主要的,nacos-client-spring-boot-starter中依赖了nacos-config-spring-boot-autoconfigure,自动装配的知识我就当大家都了解哈,不了解的可以我留言,我会单独写一篇springboot自动装配的解析。
再看spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.boot.nacos.config.autoconfigure.NacosConfigAutoConfiguration org.springframework.boot.env.EnvironmentPostProcessor=\ com.alibaba.boot.nacos.config.autoconfigure.NacosConfigEnvironmentProcessor
3、NacosConfigEnvironmentProcessor逻辑解析
咱们来看一下NacosConfigEnvironmentProcessor类中到底干了啥?实现了EnvironmentPostProcessor接口的postProcessEnvironment这个方法
其中加载了NacosConfigApplicationContextInitializer这个类,实现了ApplicationContextInitializer,这个接口在springboot启动过程中是很重要的,会初始化一些东西
为了更方便的看到结果,我打个断点到loadConfig中,主要看reqGlobalNacosConfig方法
在reqGlobalNacosConfig方法中,我们看到我们熟悉的dataIds,这个是在配置中配置的,对应的nacos服务端的配置,配置的dataIds是以逗号分隔的字符串,这里主要是将dataIds字符串转换成数组:
最终会走到reqNacosConfig中,有个for循环来循环dataIds,NacosUtils.getContent方法就是通过dataId,拿到服务端的配置。底层还是通过http请求访问的http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=xxx_database_config&group=DEFAULT_GROUP&tenant=xxx 接口,由于篇幅的原因,这里就不解释了,我们主要是看nacos的配置是怎么拿到的。
本文章只提供看源码的思路,如果想具体了解nacos获取配置的全过程,还需要你真正的去debug源码。
我这里留一个小问题,大家可以思考一下:NacosConfigEnvironmentProcessor类 什么时候被springboot加载的。
到此这篇关于springboot中nacos-client获取配置的实现方法的文章就介绍到这了,更多相关springboot nacos-client获取配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- springboot2.6.3读取不到nacos上的配置文件问题
- springboot集成nacos读取nacos配置数据的原理
- springboot bootstrap.yml nacos配置中心问题
- SpringBoot集成Nacos实现注册中心与配置中心流程详解
- springboot整合nacos,如何读取nacos配置文件
- springboot读取nacos配置文件的实现
- 聊聊SpringBoot整合Nacos自动刷新配置的问题
- 聊聊SpringBoot使用Nacos进行服务注册发现与配置管理问题
- 关于springboot中nacos动态路由的配置
- SpringBoot使用Nacos动态配置数据源的方法
- SpringBoot使用Nacos配置中心的实现
- springboot集成nacos的配置方法
- Nacos与SpringBoot实现配置管理的开发实践