nacos中配置更新時無法自動刷新

一、前言

nacos中配置變更時,只會自動刷新@RefreshScop和@ConfigurationProperties標註的內容,這個不過多解釋,讀者也可以自行翻閱源碼查看。

本文重點解釋在新版的springboot2.4,springcloud2020之後,如何使用nacos的自動刷新。

二、報錯

Ignore the empty nacos configuration and get it based on dataId[null.properties] & group[DEFAULT_GROUP]
Located property source: [BootstrapPropertySource {name='bootstrapProperties-null.properties,DEFAULT_GROUP'}]
No active profile set, falling back to default profiles: default
Started application in 0.199 seconds (JVM running for 16.313)
Refresh keys changed: []

三、解釋

1、在早期版本中,連接nacos的信息是通過bootstrap加載的。

2、springboot2.4及之後變更了配置文件加載方式,springcloud2020及之後默認不啓用bootstrap。參考文檔:Spring Cloud 2020.0.0 (aka Ilford) Is Available

3、若使用新版springboot2.4及之後和springcloud2020及之後的版本,還想要繼續使用bootstrap方式加載連接信息,需要單獨引入bootstrap依賴包即可。雖然基本功能能正常使用,但是在nacos在配置變更時,觸發的springboot配置刷新的功能,已變更爲只能刷新bootstrap上下文,不能刷新application上下文,所以naocs不能加載到application中spring.application.name。所以必須把spring.application.name寫入bootstrap中,或者通過啓動參數設置。

3、springboot和springcloud新版的要求,可以不通過bootstrap方式加載nacos連接信息,而是通過application的方式加載,親測自動刷新功能可用。參考文章:進階指南 | Spring Cloud Alibaba (aliyun.com)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章