springboot中nacos

lxf2023-06-27 21:50:01

在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自动组装的分析。

springboot中nacos

再看一遍spring.factories

springboot中nacos

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用这种方法

springboot中nacos 在其中载入了NacosConfigApplicationContextInitializer这一类,完成了ApplicationContextInitializer,这一插口在springboot启动过程中是非常重要的,会复位一些东西

springboot中nacos

springboot中nacos

为了能更高效的见到结论,我打一个中断点到loadConfig中,主要是看reqGlobalNacosConfig方式

springboot中nacos

在reqGlobalNacosConfig方式中,我们可以看到大家熟知的dataIds,这一要在配备中配备的,相对应的nacos服务端配备,配备的dataIds要以逗号分隔的字符串数组,这儿就是将dataIds字符串转换成二维数组:

springboot中nacos

最后能走到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配置是如何拿到手的。

springboot中nacos

本文会提供看源码思路,如果要详细了解nacos获得配备的全流程,还要你真正去debug源代码

我这边留一个小毛病,你们可以思考一下: NacosConfigEnvironmentProcessor类 何时被springboot载入的。对了有奖活动

本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!