SpringCloud讀取Nacos配置中心報錯及遇到的坑:Could?not?resolve?placeholder?‘xxx’?in?value?‘${xxx}
hello,我是灰小猿,一個超會寫bug的程序員!
近期在寫一個spring cloud Alibaba讀取Nacos配置中心遠程配置文件的內(nèi)容時,出現(xiàn)了幾個比較坑的bug,在此記錄一下,幫大家避避坑。
我的使用場景:
- SpringBoot版本為2.6.0
- Spring Cloud版本為2021.0.1
- Spring Cloud Alibaba版本為2021.0.1.0
如果你的Cloud版本是2020.0.0版本之后的,建議直接先看是否是由第二個坑引起的。
第一個坑:Could not resolve placeholder ‘xxx’ in value ‘${xxx}
出現(xiàn)該報錯的意思一般是使用@Value()注解讀取的配置文件數(shù)據(jù)無法解析
可能情況有兩種:一種是配置文件注冊進去了,但是沒有讀取到配置文件中的指定參數(shù)
第二種情況:配置文件就沒有解析注冊,導(dǎo)致無法讀取到參數(shù)信息,我的是由于第二種,解決在第二個坑。
如果第一種就檢查yml中參數(shù)格式是否正確,拼寫是否正確等
如果確認都正確就可能是下面的原因:
因為根據(jù)官方文件介紹,

因此需要檢查你本地代碼中的bootstrap.yml中寫的配置文件的名稱,是否能夠和Nacos中的配置文件的名稱對應(yīng)上,
在這里還應(yīng)該注意:Nacos中的配置文件的DataId中要寫入文件的后綴,并且Nacos是區(qū)分yaml和yml的,所以Nacos中的后綴要和本地bootstrap.yml中的file-extension的參數(shù)對應(yīng)!
正確的情況下,我的Nacos文件如下:

我的 bootstrap.yaml文件如下:
server:
port: 8081
spring:
application:
name: nacos-config-a
cloud:
nacos:
config: # 項目在啟動時,配置怎么去哪里拿去配置文件?
server-addr: localhost:8848
username: nacos
password: nacos
file-extension: yaml # 配置文件類型
# namespace: public # namespace不寫時去默認名稱空間獲取
# group: DEFAULT_GROUP # group不寫時去默認組獲取
# prefix: nacos-config-a # 表示讀取哪個配置文件?不寫時默認使用${spring.application.name}
以上配置文件名稱對應(yīng)完畢之后,先啟動Nacos,再重啟啟動本地IDEA,測試是否啟動成功!
如果確定上述文件配置沒有問題的話,建議看一下是否是第二個坑,
第二個坑:Param ‘serviceName‘ is illegal, serviceName is blank
我就是上面確定文件類型對應(yīng)沒有問題了,但是啟動還是會報第一個錯誤,經(jīng)過很多嘗試之后出現(xiàn)了第二個報錯,當然同學們也肯定沒有出現(xiàn)第二個報錯,仍然還是啟動不起來,
我們知道SpringCloud連接遠程Nacos是需要使用bootstrap配置文件的,
但是在2020.0.0版本之后,SpringCloud不再默認識別并加載bootstrap.yml配置了,也就是說就算你有bootstrap.yml文件,在不引入相關(guān)依賴的情況下,系統(tǒng)啟動也不會給你讀取的,坑?。。?/strong>
因此如果你需要啟動bootstrap配置,需要在你的pom中加入如下依賴,
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>之后重新加載pom,并啟動項目即可!
如果大家有遇到相關(guān)問題或其他解決,也歡迎在評論區(qū)留言討論!
到此這篇關(guān)于SpringCloud讀取Nacos配置中心報錯:Could not resolve placeholder ‘xxx’ in value ‘${xxx}的文章就介紹到這了,更多相關(guān)SpringCloud讀取Nacos配置中心報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA Error:java: 無效的源發(fā)行版: 17錯誤
本文主要介紹了IDEA Error:java: 無效的源發(fā)行版: 17錯誤,這個錯誤是因為您的IDEA編譯器不支持Java 17版本,您需要更新您的IDEA編譯器或者將您的Java版本降級到IDEA支持的版本,本文就來詳細的介紹一下2023-08-08
Java數(shù)據(jù)結(jié)構(gòu)之復(fù)雜度篇
算法復(fù)雜度分為時間復(fù)雜度和空間復(fù)雜度。其作用:?時間復(fù)雜度是度量算法執(zhí)行的時間長短;而空間復(fù)雜度是度量算法所需存儲空間的大小2022-01-01
SpringBoot動態(tài)導(dǎo)出word文檔實整教程(復(fù)制即可使用)
在我們做項目的時候會需要把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到word當中,下面這篇文章主要給大家介紹了關(guān)于SpringBoot動態(tài)導(dǎo)出word文檔實整教程的相關(guān)資料,文中的代碼復(fù)制即可使用,需要的朋友可以參考下2023-06-06
SpringBoot中@ConditionalOnBean實現(xiàn)原理解讀
這篇文章主要介紹了SpringBoot中@ConditionalOnBean實現(xiàn)原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Java面向?qū)ο髮崿F(xiàn)汽車租賃系統(tǒng)
這篇文章主要為大家詳細介紹了Java面向?qū)ο髮崿F(xiàn)汽車租賃系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

