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

SpringCloud配置動(dòng)態(tài)更新原理解析

 更新時(shí)間:2025年01月13日 09:53:38   作者:壞貓警長(zhǎng)  
在微服務(wù)架構(gòu)的浩瀚星海中,服務(wù)配置的動(dòng)態(tài)更新如同魔法一般,能夠讓應(yīng)用在不重啟的情況下,實(shí)時(shí)響應(yīng)配置的變更,Spring Cloud作為微服務(wù)架構(gòu)中的佼佼者,其動(dòng)態(tài)配置更新的能力尤為引人注目,本文給大家介紹了SpringCloud配置動(dòng)態(tài)更新原理,需要的朋友可以參考下

一、SpringBoot、Cloud配置的讀取

1、SpringBoot啟動(dòng)時(shí)會(huì)讀取并解析配置文件中的配置到內(nèi)存變量,保存在Environment對(duì)象的屬性中。如果引入了配置中心如Nacos、Apollo,其中的配置也會(huì)被SpringBoot讀取并保存在Environment對(duì)象中。

2、可以使用編碼的方式獲取配置數(shù)據(jù):

String name = environment.getProperty("name");

3、可以使用@Value注解直接把配置賦值給Bean的屬性:

這里的name變量值直接來(lái)自于Environment對(duì)象。

二、SpringCloud配置動(dòng)態(tài)刷新

1、SpringBoot配置文件和SpringCloud配置中心中的配置,區(qū)別只是來(lái)源不同,都是被讀取加載到Environment對(duì)象中生效的:

2、當(dāng)配置中心修改了配置并發(fā)布時(shí),Server端會(huì)向Client端發(fā)送配置變化通知,Client端重新拉取配置并更新Environment對(duì)象中的配置數(shù)據(jù)(通常通過(guò)事件發(fā)布和監(jiān)聽機(jī)制來(lái)實(shí)現(xiàn))

此時(shí)如果使用編碼方式從Environment對(duì)象中獲取配置(而不是@Value注解的屬性),則已經(jīng)是更新后的值。

三、更新@RefreshScope注解Bean的屬性值

1、對(duì)于使用@Value注解獲取配置的屬性,不會(huì)隨配置數(shù)據(jù)的更新而更新,因?yàn)锽ean對(duì)象已經(jīng)創(chuàng)建完成,配置變化時(shí)只是更新Environment中的數(shù)據(jù),并沒有更新Bean屬性值的動(dòng)作發(fā)生。

2、但是如果Bean上有@RefreshScope注解,則其中的@Value屬性值會(huì)隨配置更新而更新。

原理:使用@RefreshScope標(biāo)記的Bean,Spring會(huì)為其創(chuàng)建代理對(duì)象,代理對(duì)象中持有原生對(duì)象,@Value的屬性值位于原生對(duì)象中。SpringBoot中的配置中心客戶端在收到服務(wù)端的變更通知后,會(huì)先后發(fā)布兩個(gè)事件:1、觸發(fā)Environment重新加載相關(guān)配置數(shù)據(jù)。2、觸發(fā)所有@RefreshScope的Bean置為null,則在這些Bean下次使用時(shí)重新創(chuàng)建,重新從Environment中獲取配置,即實(shí)現(xiàn)@Value屬性值的更新。

注:從SpringCloud配置動(dòng)態(tài)更新的原理可知,諸如數(shù)據(jù)庫(kù)連接配置,在配置中心修改了配置后只是會(huì)更新@RefreshScope注解Bean中的@Value屬性,如果要?jiǎng)討B(tài)修改數(shù)據(jù)庫(kù)信息,則還需要重建DataSource對(duì)象、清除舊連接等操作。

以上就是SpringCloud配置動(dòng)態(tài)更新原理解析的詳細(xì)內(nèi)容,更多關(guān)于SpringCloud配置動(dòng)態(tài)更新的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mybatis分頁(yè)插件PageHelper手寫實(shí)現(xiàn)示例

    Mybatis分頁(yè)插件PageHelper手寫實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Mybatis分頁(yè)插件PageHelper手寫實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Mybatis-Plus根據(jù)自定義注解實(shí)現(xiàn)自動(dòng)加解密的示例代碼

    Mybatis-Plus根據(jù)自定義注解實(shí)現(xiàn)自動(dòng)加解密的示例代碼

    我們把數(shù)據(jù)存到數(shù)據(jù)庫(kù)的時(shí)候,有些敏感字段是需要加密的,從數(shù)據(jù)庫(kù)查出來(lái)再進(jìn)行解密,如果我們使用的是Mybatis框架,那就跟著一起探索下如何使用框架的攔截器功能實(shí)現(xiàn)自動(dòng)加解密吧,需要的朋友可以參考下
    2024-06-06
  • 強(qiáng)烈推薦IDEA提高開發(fā)效率的必備插件

    強(qiáng)烈推薦IDEA提高開發(fā)效率的必備插件

    這篇文章主要介紹了強(qiáng)烈推薦IDEA提高開發(fā)效率的必備插件,文中有非常詳細(xì)的圖文示例,對(duì)想要提高企業(yè)開發(fā)效率的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Jar包反編譯,修改代碼后,重新打jar包方式

    Jar包反編譯,修改代碼后,重新打jar包方式

    文章介紹了如何將一個(gè)jar包反編譯成java代碼,運(yùn)行和測(cè)試,然后重新打包,主要步驟包括:使用idea的decompiler插件反編譯jar包,將反編譯后的代碼導(dǎo)入maven項(xiàng)目,修改代碼并重新打包
    2026-03-03
  • 10個(gè)Java解決內(nèi)存溢出OOM的方法詳解

    10個(gè)Java解決內(nèi)存溢出OOM的方法詳解

    在Java開發(fā)過(guò)程中,有效的內(nèi)存管理是保證應(yīng)用程序穩(wěn)定性和性能的關(guān)鍵,不正確的內(nèi)存使用可能導(dǎo)致內(nèi)存泄露甚至是致命的OutOfMemoryError(OOM),下面我們就來(lái)學(xué)習(xí)一下有哪些解決辦法吧
    2024-01-01
  • 基于Java的正則表達(dá)式

    基于Java的正則表達(dá)式

    正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法(英語(yǔ):Regular Expression,在代碼中常簡(jiǎn)寫為regex、regexp或RE),計(jì)算機(jī)科學(xué)的一個(gè)概念
    2017-05-05
  • freemarker簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    freemarker簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    FreeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫,有興趣的可以了解一下
    2017-08-08
  • 詳解Spring學(xué)習(xí)總結(jié)——Spring實(shí)現(xiàn)AOP的多種方式

    詳解Spring學(xué)習(xí)總結(jié)——Spring實(shí)現(xiàn)AOP的多種方式

    這篇文章主要介紹了詳解Spring學(xué)習(xí)總結(jié)——Spring實(shí)現(xiàn)AOP的多種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • Java簡(jiǎn)單高效實(shí)現(xiàn)分頁(yè)功能

    Java簡(jiǎn)單高效實(shí)現(xiàn)分頁(yè)功能

    這篇文章主要介紹了Java簡(jiǎn)單高效實(shí)現(xiàn)分頁(yè)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot+Redis防止接口重復(fù)提交問(wèn)題

    SpringBoot+Redis防止接口重復(fù)提交問(wèn)題

    這篇文章主要介紹了SpringBoot+Redis防止接口重復(fù)提交問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評(píng)論

油尖旺区| 喀什市| 福州市| 沁阳市| 高州市| 平安县| 理塘县| 保德县| 南岸区| 库伦旗| 绥棱县| 陆川县| 长顺县| 红桥区| 武安市| 博野县| 饶阳县| 鲜城| 黄浦区| 剑川县| 天台县| 定边县| 荥经县| 安福县| 大连市| 环江| 山东| 常州市| 连南| 上思县| 龙游县| 赤峰市| 民权县| 山东| 日照市| 嘉义县| 平湖市| 泊头市| 上栗县| 沙田区| 高要市|