亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

@Value如何設(shè)置默認(rèn)值

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

@Value設(shè)置默認(rèn)值

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

沒有默認(rèn)值的用法:

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

增加默認(rèn)值的用法:

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

這里需要注意的是:

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

如果是因?yàn)樘囟ㄐ枨蟊仨氁ostatic變量進(jìn)行@Value設(shè)值的話,可以采用下面這種方式

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

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

遇到的現(xiàn)象:

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

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

這個是PropertyPlaceholderConfigurer的問題,如果是

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

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

解決方法和解決理由

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

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

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

只需要在spring的xml配置中加以下代碼對 進(jìn)行設(shè)置

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

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

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

總結(jié)

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

相關(guān)文章

  • java實(shí)現(xiàn)的圖片裁剪功能示例

    java實(shí)現(xiàn)的圖片裁剪功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)的圖片裁剪功能,涉及java針對圖片的讀取、轉(zhuǎn)換、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • java基礎(chǔ)學(xué)習(xí)JVM中GC的算法

    java基礎(chǔ)學(xué)習(xí)JVM中GC的算法

    這篇文章主要介紹了java基礎(chǔ)學(xué)習(xí)JVM中GC的算法,通過圖文加深對GC算法思路的理解。
    2017-11-11
  • Java日期工具類DateUtils實(shí)例詳解

    Java日期工具類DateUtils實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了Java日期工具類DateUtils實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java Swing SpringLayout彈性布局的實(shí)現(xiàn)代碼

    Java Swing SpringLayout彈性布局的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java Swing SpringLayout彈性布局的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Spring Boot 自動配置之條件注解淺析

    Spring Boot 自動配置之條件注解淺析

    這篇文章主要介紹了Spring Boot 自動配置之條件注解淺析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • BeanUtils.copyProperties在拷貝屬性時忽略空值的操作

    BeanUtils.copyProperties在拷貝屬性時忽略空值的操作

    這篇文章主要介紹了BeanUtils.copyProperties在拷貝屬性時忽略空值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java后臺接口開發(fā)初步實(shí)戰(zhàn)教程

    Java后臺接口開發(fā)初步實(shí)戰(zhàn)教程

    下面小編就為大家分享一篇 Java后臺接口開發(fā)初步實(shí)戰(zhàn)教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot利用觀察者模式實(shí)現(xiàn)聯(lián)動更新機(jī)制

    SpringBoot利用觀察者模式實(shí)現(xiàn)聯(lián)動更新機(jī)制

    觀察者模式(Observer Pattern)是一種軟件設(shè)計(jì)模式,在許多應(yīng)用系統(tǒng)中,我們經(jīng)常需要處理多個表之間的關(guān)聯(lián)更新問題,本文將通過一個具體的案例,介紹如何在Spring Boot項(xiàng)目中利用觀察者模式來優(yōu)雅地解決這一需求,需要的朋友可以參考下
    2024-07-07
  • Java throw和throws使用區(qū)別分析

    Java throw和throws使用區(qū)別分析

    這篇文章主要介紹了Java throw和throws使用區(qū)別分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法

    Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論