@Value設(shè)置默認(rèn)值后,獲取不到配置值的原因分析
@Value設(shè)置默認(rèn)值后,獲取不到配置值
當(dāng)前使用版本:Spring Framework version is 5.2.5.RELEASE
解析@Value的代碼位置
org.springframework.beans.factory.support.AbstractBeanFactory#resolveEmbeddedValue

假設(shè)配置了
@value("${server.servlet.context-path:/}")1、當(dāng)存在多個(gè)值解析器時(shí),如果第一個(gè)解析器獲取不到配置項(xiàng)(server.servlet.context-path)的值,那么resolveStringValue方法將返回默認(rèn)值(本例中既是 /)
2、上一個(gè)值解析器的返回值,作為下一個(gè)值解析器resolveStringValue的參數(shù)傳遞進(jìn)去。因此,即使第二個(gè)值解析器有配置了值,那么也不可能進(jìn)行正確的解析了,這導(dǎo)致了結(jié)果始終返回默認(rèn)值
@Value注解獲取配置信息時(shí)提示 Could not resolve placeholder ‘xxx‘ in value “${xxx}“
問題的原因很簡單,就是獲取不到配置信息
解決方法
先檢查一下配置文件是否存在,注意不同環(huán)境使用不同配置文件的情況。
再檢查配置文件中是否有這個(gè)配置屬性,如果沒有,可以在配置文件中加上該配置屬性,也可以在@Value引入到屬性名后加上冒號(hào),表示在獲取不到配置信息賦予默認(rèn)值,比如下面獲取不到my.name配置信息時(shí) myName 的值為空字符串
@Value("${my.name:}")
String myName;總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用Java統(tǒng)計(jì)gitlab代碼行數(shù)
這篇文章主要介紹了如何使用Java統(tǒng)計(jì)gitlab代碼行數(shù),實(shí)現(xiàn)方式通過git腳本將所有的項(xiàng)目拉下來并然后通過進(jìn)行代碼行數(shù)的統(tǒng)計(jì),需要的朋友可以參考下2023-10-10
Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2019-09-09
解決SpringAop內(nèi)部調(diào)用時(shí)不經(jīng)過代理類的問題
這篇文章主要介紹了解決SpringAop內(nèi)部調(diào)用時(shí)不經(jīng)過代理類的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)大文件分塊上傳功能,實(shí)現(xiàn)原理其實(shí)很簡單,核心就是客戶端把大文件按照一定規(guī)則進(jìn)行拆分,比如20MB為一個(gè)小塊,分解成一個(gè)一個(gè)的文件塊,然后把這些文件塊單獨(dú)上傳到服務(wù)端,需要的朋友可以參考下2024-09-09
Spring Boot Async異步執(zhí)行任務(wù)過程詳解
這篇文章主要介紹了Spring Boot Async異步執(zhí)行任務(wù)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
spring mail借助qq郵箱服務(wù)器發(fā)送郵件
這篇文章主要介紹了spring mail借助qq郵箱服務(wù)器發(fā)送郵件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
Springboot項(xiàng)目如何使用apollo配置中心
這篇文章主要介紹了Springboot項(xiàng)目如何使用apollo配置中心,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

