Springboot服務(wù)引用Nacos中新增的配置文件失敗問題及解決
問題現(xiàn)象
今天在項目中遇到一個問題:
Nacos中新增一個 sgccamapappserver-dev.yml 配置文件,然后讓 Springboot 服務(wù)引用這個新的配置文件,但是失敗了?。?!啟動服務(wù)后發(fā)現(xiàn)讀取的還是原來的 sgccamapappserver.yml 配置文件?。?!

問題分析
這個問題其實是涉及到了nacos加載配置文件的順序邏輯:
首先看一下服務(wù)的bootstrap.peoperties配置:
修改前,加載的nacos配置文件是 sgccamapappserver.yml:

修改后,加載的nacos配置文件是 sgccamapappserver-dev.yml:

那么為什么會加載失敗呢?
其實問題就出現(xiàn)在微服務(wù)名稱這里,可以看出是 sgccamapappserver:

導(dǎo)致 sgccamapappserver-dev.yml 加載失敗的原因就是因為:
springboot項目默認(rèn)會優(yōu)先查詢nacos中與微服務(wù)名稱相同的配置;
所以當(dāng)nacos中存在 sgccamapappserver.yml 配置文件,則會直接加載這個配置,直接略過了下面這個配置:

還有一個因素,就是當(dāng)配置中未指定環(huán)境,會導(dǎo)致它默認(rèn)加載與 spring.application.name 屬性值同名的nacos配置文件。
解決方法
從問題分析可以得知要解決這個問題,其實很簡單,那就是 指定環(huán)境。如:
我現(xiàn)在要加載的nacos配置是 sgccamapappserver-dev.yml
那就可以在 bootstrap.peoperties配置文件中添加如下配置,來指定環(huán)境:

最終:

親測可用!
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring @Transaction 注解執(zhí)行事務(wù)的流程
這篇文章主要介紹了Spring @Transaction 注解執(zhí)行事務(wù)的流程,Spring 是如何開啟事務(wù)的?又是如何進(jìn)行提交事務(wù)和關(guān)閉事務(wù)的,本文給大家詳細(xì)介紹,需要的朋友可以參考下2021-06-06
一文搞清楚Java中Comparable和Comparator的區(qū)別
Java中的Comparable和Comparator都是用于集合排序的接口,但它們有明顯的區(qū)別,文中通過一些實例代碼詳細(xì)介紹了Java中Comparable和Comparator的區(qū)別,感興趣的同學(xué)跟著小編一起學(xué)習(xí)吧2023-05-05
Java查詢時間段(startTime--endTime)間的數(shù)據(jù)方式
這篇文章主要介紹了Java查詢時間段(startTime--endTime)間的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互的示例
數(shù)據(jù)庫是非常重要的一種存儲格式,可以大大提高存儲效率,本文主要介紹了Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互的示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03
Java序列化和反序列化_動力節(jié)點Java學(xué)院整理
把對象轉(zhuǎn)換為字節(jié)序列的過程稱為對象的序列化,把字節(jié)序列恢復(fù)為對象的過程稱為對象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧2017-05-05
springboot使用線程池(ThreadPoolTaskExecutor)示例
大家好,本篇文章主要講的是springboot使用線程池(ThreadPoolTaskExecutor)示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12

