最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@Value如何設置默認值

 更新時間:2023年07月28日 09:30:50   作者:有夢想的攻城獅  
這篇文章主要介紹了@Value如何設置默認值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Value設置默認值

使用@Value注解將變量進行自動注入的時候,經常會出現(xiàn)的一個問題就是我們可能會由于在配置參數(shù)中忘記設置該參數(shù)造成整個項目報錯,其實我們可以通過給被@Value注解作用的變量進行注入的時候如果沒有找到該配置參數(shù)時設置一個默認值,相當于是一個兜底的方案:

沒有默認值的用法:

@Value("${spring.port}")
private String port;

增加默認值的用法:

@Value("${spring.port:8080}")
private String port;

這里需要注意的是:

  • 即使你的配置參數(shù)的值是String類型的話也不需要加雙引號
  • 被static修飾的變量通過@Value會注入失敗

如果是因為特定需求必須要給static變量進行@Value設值的話,可以采用下面這種方式

  • 給static變量采用@Value設值
public static String port;
@Value("${spring.port:8080}")
public void setPort(String port){
?? ?Class.port = port;
}

@Value() 設置默認值后,配置值無法生效的解決

遇到的現(xiàn)象:

使用@Value(${cash.trade.show.loan.repay:true})配置后,即使配置文件里配置了cash.trade.show.loan.repay = false ,程序獲得的showLoanRepay還是true。

這邊源碼會去匹配":"獲得后面的值,然后給propVal賦值,由于后面的判斷都是依照if(propVal==null)進行判斷的,所以默認值賦值上去之后就不會獲取配置文件的值了。

這個是PropertyPlaceholderConfigurer的問題,如果是

由于方法列表里放有兩個方法,PropertyPlaceholderConfigurer先操作,所以默認值賦值后導致后面的PropertySourcesPlaceholderConfigurer無法獲取到配置項里的內容,如果列表順序換一下,就可以了,但是沒找到怎么弄。

這邊就是按順序方法執(zhí)行進行匹配參數(shù)

解決方法和解決理由

所以打算換個思路,不設置默認值,并且讓系統(tǒng)在沒有獲取到默認值時也不報錯。

進入源碼發(fā)現(xiàn),如果沒有配置時會根據(jù)下面這個參數(shù)進行判斷是否拋出異常

而前一張圖里發(fā)現(xiàn)PropertyPlaceholderConfigurer的值為true,PropertySourcesPlaceholderConfigurer的值為false,所以我們需要把PropertySourcesPlaceholderConfigurer的值配置成true這樣兩個工具都不會進行拋錯了。

只需要在spring的xml配置中加以下代碼對 進行設置

    <bean id="propertySourcesPlaceholderConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
    </bean>

但是這里要注意了,如果你默認的參數(shù)設置成String以外的就會報錯哦,我這邊就是設置成Boolean。

這里發(fā)現(xiàn),如果你沒有進行配置,并且設置忽略沒配置時,value值會被設為${}里面的參數(shù)名稱,所以會拋出類型異常,所以我把參數(shù)設置成了String,并且當值等于參數(shù)名時當成時默認值。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java設計模式---迭代器模式(Iterator)解讀

    Java設計模式---迭代器模式(Iterator)解讀

    這篇文章主要介紹了Java設計模式---迭代器模式(Iterator),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • JDK 7 新特性小結實例代碼解析

    JDK 7 新特性小結實例代碼解析

    這篇文章通過實例代碼給大家介紹了JDK 7 新特性小結篇,感興趣的朋友一起看看吧
    2018-03-03
  • 基于Spring概念模型:PathMatcher 路徑匹配器

    基于Spring概念模型:PathMatcher 路徑匹配器

    這篇文章主要介紹了Spring概念模型:PathMatcher 路徑匹配器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java時間戳與日期相互轉換工具詳解

    java時間戳與日期相互轉換工具詳解

    這篇文章主要為大家詳細介紹了java各種時間戳與日期之間相互轉換的工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java基于Socket實現(xiàn)HTTP下載客戶端

    Java基于Socket實現(xiàn)HTTP下載客戶端

    這篇文章主要介紹了Java基于Socket實現(xiàn)HTTP下載客戶端的相關資料,感興趣的小伙伴們可以參考一下
    2016-01-01
  • SpringSecurity+jwt+captcha登錄認證授權流程總結

    SpringSecurity+jwt+captcha登錄認證授權流程總結

    本文介紹了SpringSecurity、JWT和驗證碼在Spring Boot 3.2.0中的應用,包括登錄認證和授權流程的詳細步驟,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • java實現(xiàn)哈夫曼文件解壓縮

    java實現(xiàn)哈夫曼文件解壓縮

    這篇文章主要為大家詳細介紹了java實現(xiàn)哈夫曼文件解壓縮,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • SpringBoot詳細列舉常用注解的說明

    SpringBoot詳細列舉常用注解的說明

    在開發(fā)SpringBoot程序的過程中,有可能與其他業(yè)務系統(tǒng)進行對接開發(fā),獲取封裝公共的API接口等等,下面這篇文章主要給大家介紹了關于SpringBoot常見的注解的相關資料,需要的朋友可以參考下
    2022-06-06
  • 使用Java實現(xiàn)為PPT(PowerPoint)設置背景

    使用Java實現(xiàn)為PPT(PowerPoint)設置背景

    在日益數(shù)字化的辦公環(huán)境中,PowerPoint 演示文稿已成為信息傳達不可或缺的工具,本文將深入探討如何利用 Spire.Presentation for Java 為PowerPoint幻燈片設置純色、漸變色和圖片背景,感興趣的可以了解下
    2025-08-08
  • Java后端產生驗證碼后臺驗證功能的實現(xiàn)代碼

    Java后端產生驗證碼后臺驗證功能的實現(xiàn)代碼

    這篇文章主要介紹了Java后臺產生驗證碼后臺驗證功能,本文文字結合實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06

最新評論

十堰市| 遂溪县| 射阳县| 肇庆市| 龙泉市| 舞钢市| 杭锦后旗| 威海市| 湖北省| 成安县| 岑巩县| 宜君县| 白城市| 四平市| 个旧市| 龙海市| 拜泉县| 综艺| 五原县| 佛冈县| 唐山市| 宿松县| 临邑县| 沁阳市| 庆安县| 桐庐县| 池州市| 门头沟区| 体育| 胶州市| 台湾省| 德清县| 怀来县| 永丰县| 台北县| 长岛县| 锡林浩特市| 商洛市| 和田市| 尖扎县| 政和县|