返回顶部
首页 > 资讯 > 后端开发 > Python >springboot中nacos-client获取配置的实现方法
  • 491
分享到

springboot中nacos-client获取配置的实现方法

springbootnacos-client获取配置springbootnacos-client配置 2023-05-18 05:05:11 491人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1、导入Nacos的Maven包2、nacos-config-spring-boot-autoconfigure解析3、NacosConfigEnvironmentProcess

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自动装配的解析。

image.png

再看spring.factories

image.png

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这个方法

image.png

其中加载了NacosConfigApplicationContextInitializer这个类,实现了ApplicationContextInitializer,这个接口在springboot启动过程中是很重要的,会初始化一些东西

image.png

image.png

为了更方便的看到结果,我打个断点到loadConfig中,主要看reqGlobalNacosConfig方法

image.png

在reqGlobalNacosConfig方法中,我们看到我们熟悉的dataids,这个是在配置中配置的,对应的nacos服务端的配置,配置的dataIds是以逗号分隔的字符串,这里主要是将dataIds字符串转换成数组

image.png

最终会走到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的配置是怎么拿到的。

image.png

本文章只提供看源码的思路,如果想具体了解nacos获取配置的全过程,还需要你真正的去debug源码。

我这里留一个小问题,大家可以思考一下:NacosConfigEnvironmentProcessor类 什么时候被springboot加载的。

到此这篇关于springboot中nacos-client获取配置的实现方法的文章就介绍到这了,更多相关springboot nacos-client获取配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: springboot中nacos-client获取配置的实现方法

本文链接: https://lsjlt.com/news/211716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作