最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot中nacos-client獲取配置的實(shí)現(xiàn)方法

 更新時(shí)間:2023年04月27日 14:40:43   作者:趣開源  
本文主要介紹了springboot中nacos-client獲取配置的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在springboot中使用nacos的小伙伴是不是跟我有一樣的好奇,springboot中nacos-client是怎么獲取配置的?今天我跟了一下代碼,大致的流程弄懂了,分享給大家。

1、導(dǎo)入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,自動(dòng)裝配的知識(shí)我就當(dāng)大家都了解哈,不了解的可以我留言,我會(huì)單獨(dú)寫一篇springboot自動(dòng)裝配的解析。

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類中到底干了啥?實(shí)現(xiàn)了EnvironmentPostProcessor接口的postProcessEnvironment這個(gè)方法

image.png

其中加載了NacosConfigApplicationContextInitializer這個(gè)類,實(shí)現(xiàn)了ApplicationContextInitializer,這個(gè)接口在springboot啟動(dòng)過程中是很重要的,會(huì)初始化一些東西

image.png

image.png

為了更方便的看到結(jié)果,我打個(gè)斷點(diǎn)到loadConfig中,主要看reqGlobalNacosConfig方法

image.png

在reqGlobalNacosConfig方法中,我們看到我們熟悉的dataIds,這個(gè)是在配置中配置的,對(duì)應(yīng)的nacos服務(wù)端的配置,配置的dataIds是以逗號(hào)分隔的字符串,這里主要是將dataIds字符串轉(zhuǎn)換成數(shù)組:

image.png

最終會(huì)走到reqNacosConfig中,有個(gè)for循環(huán)來循環(huán)dataIds,NacosUtils.getContent方法就是通過dataId,拿到服務(wù)端的配置。底層還是通過http請(qǐng)求訪問的http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=xxx_database_config&group=DEFAULT_GROUP&tenant=xxx 接口,由于篇幅的原因,這里就不解釋了,我們主要是看nacos的配置是怎么拿到的。

image.png

本文章只提供看源碼的思路,如果想具體了解nacos獲取配置的全過程,還需要你真正的去debug源碼。

我這里留一個(gè)小問題,大家可以思考一下:NacosConfigEnvironmentProcessor類 什么時(shí)候被springboot加載的。

到此這篇關(guān)于springboot中nacos-client獲取配置的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)springboot nacos-client獲取配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Java & Idea啟動(dòng)tomcat的中文亂碼問題

    解決Java & Idea啟動(dòng)tomcat的中文亂碼問題

    這篇文章主要介紹了Java & Idea啟動(dòng)tomcat的中文亂碼問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 淺析java快速排序算法

    淺析java快速排序算法

    這篇文章主要介紹了淺析java快速排序算法,需要的朋友可以參考下
    2015-02-02
  • Java對(duì)稱加密工作模式原理詳解

    Java對(duì)稱加密工作模式原理詳解

    這篇文章主要介紹了Java對(duì)稱加密工作模式原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot整合MyBatis-Plus的示例代碼

    SpringBoot整合MyBatis-Plus的示例代碼

    這篇文章主要介紹了SpringBoot整合MyBatis-Plus的示例代碼,使用?MyBatis-Plus 可以減少大量的開發(fā)時(shí)間,單表的增刪改查可以不用寫 sql 語句,本文主要介紹整合需要主要事項(xiàng),需要的朋友可以參考下
    2022-03-03
  • Redis六大數(shù)據(jù)類型使用方法詳解

    Redis六大數(shù)據(jù)類型使用方法詳解

    這篇文章主要介紹了Redis六大數(shù)據(jù)類型使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java log4j詳細(xì)教程

    Java log4j詳細(xì)教程

    日志是應(yīng)用軟件中不可缺少的部分,Apache的開源項(xiàng)目log4j是一個(gè)功能強(qiáng)大的日志組件,提供方便的日志記錄。在apache網(wǎng)站:jakarta.apache.org/log4j 可以免費(fèi)下載到Log4j最新版本的軟件包
    2015-11-11
  • Windows配置多版本JDK的詳細(xì)步驟

    Windows配置多版本JDK的詳細(xì)步驟

    JDK是Java開發(fā)工具包的縮寫,包含了Java編譯器、Java虛擬機(jī)、Java類庫等眾多組件,是Java開發(fā)的基石,提供了編寫、編譯和運(yùn)行Java程序所必需的工具,有時(shí)候項(xiàng)目需要不同的JDK版本,所以本文給大家介紹了Windows配置多版本JDK的詳細(xì)步驟,需要的朋友可以參考下
    2025-04-04
  • flutter?TabBarView?動(dòng)態(tài)添加刪除頁面的示例代碼

    flutter?TabBarView?動(dòng)態(tài)添加刪除頁面的示例代碼

    在Flutter中使用TabBarView動(dòng)態(tài)添加和刪除頁面時(shí),如果未為每個(gè)頁面設(shè)置唯一的key,會(huì)導(dǎo)致刪除頁面時(shí)出現(xiàn)狀態(tài)錯(cuò)誤或刪除錯(cuò)誤的頁面,正確的做法是為每個(gè)頁面指定全局唯一的key,這樣可以確保頁面在添加和刪除時(shí)狀態(tài)正確,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • java虛擬機(jī)JVM類加載機(jī)制原理(面試必問)

    java虛擬機(jī)JVM類加載機(jī)制原理(面試必問)

    這篇文章主要介紹了面試當(dāng)中必會(huì)問到的java虛擬機(jī)JVM類加載機(jī)制,非常的詳細(xì),有需要的朋友可以借鑒參考下,歡迎多多交流討論
    2021-08-08
  • Java集合之HashMap/hashTable詳解

    Java集合之HashMap/hashTable詳解

    這篇文章主要介紹了Java集合之HashMap/hashTable詳解,Map是映射鍵值的對(duì)象,map不能包含重復(fù)鍵:每個(gè)鍵最多只能映射一個(gè)值,它模擬了數(shù)學(xué)函數(shù)的抽象,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

许昌县| 长宁区| 东乌珠穆沁旗| 建昌县| 垣曲县| 黔西| 正定县| 桦南县| 灌南县| 宣武区| 桐乡市| 通江县| 东乡族自治县| 扎囊县| 栖霞市| 印江| 芜湖县| 武宣县| 万全县| 长葛市| 苍南县| 五家渠市| 都昌县| 西和县| 临邑县| 甘泉县| 广丰县| 乌鲁木齐县| 偏关县| 丰镇市| 乌鲁木齐县| 英吉沙县| 垣曲县| 阆中市| 云林县| 四会市| 安福县| 玛多县| 稷山县| 万年县| 三台县|