欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

@Value設(shè)置默認(rèn)值后,獲取不到配置值的原因分析

 更新時(shí)間:2023年07月29日 08:43:26   作者:誤入歧途的羔羊  
這篇文章主要介紹了@Value設(shè)置默認(rèn)值后,獲取不到配置值的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Value設(shè)置默認(rèn)值后,獲取不到配置值

當(dāng)前使用版本:Spring Framework version is 5.2.5.RELEASE

解析@Value的代碼位置

org.springframework.beans.factory.support.AbstractBeanFactory#resolveEmbeddedValue

image

假設(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}“

問(wèn)題的原因很簡(jiǎn)單,就是獲取不到配置信息

解決方法

先檢查一下配置文件是否存在,注意不同環(huán)境使用不同配置文件的情況。

再檢查配置文件中是否有這個(gè)配置屬性,如果沒(méi)有,可以在配置文件中加上該配置屬性,也可以在@Value引入到屬性名后加上冒號(hào),表示在獲取不到配置信息賦予默認(rèn)值,比如下面獲取不到my.name配置信息時(shí) myName 的值為空字符串

@Value("${my.name:}")
String myName;

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論