關(guān)于@Value注入List,Map及設(shè)置默認值問題
更新時間:2024年05月15日 15:22:12 作者:-luking-
這篇文章主要介紹了@Value注入List,Map及設(shè)置默認值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
@Value注入List,Map及設(shè)置默認值
注入String
- yml
populate: string: stringValue
- 注入
@Value("${populate.string2:}") // 默認值是空字符串“” private String stringV; @Value("${populate.string:null}") // 默認值是null private String stringV2; @Value("${populate.string:defaultValue}") // 默認值是“defaultValue” private String stringV3;
注入Array
- yml
populate: array: array1,array2,array3
- 注入
@Value("${populate.array:}") // 默認值是[] private String[] array; @Value("${populate.array:a1,a2,a3}") // 默認值是[a1,a2,a3] private String[] array1;
注入List
- yml
populate: list: list1,list2,list3
- 注入
#{'${populate.list:}'.split(',')
: #{} 內(nèi)是SpEL表達式,使用 split 函數(shù)指定了分隔符;
${populate.list}
:不指定分隔符則會默認以,
作為分隔符。(可能較低版本的Spring不支持,未驗證)
@Value("${populate.list:}") // 默認值是空List,{} private List<String> list0; @Value("#{'${populate.list:}'.split(',')}") // 默認值是包含一個空字符串的List {“”} private List<String> list1; @Value("${populate.list:l1,l2,l3}") // 默認值是{l1,l2,l3} private List<String> list2; @Value("#{'${populate.list:l1,l2,l3}'.split(',')}") // 默認值是{l1,l2,l3} private List<String> list3; @Value("#{'${populate.list:,}'.split(',')}") // 默認值是空List,{} private List<String> list4;
注入Map
yml
- key可以但不必被單引號包圍
- value必須被單引號包圍
populate: map: "{ 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }" mapList: "{ key1: 'v11,v12', key2: 'v21,v22', key3: 'v31,v32' }"
- 注入
@Value("#{${populate.map:{}}}") // 默認值是null private Map<String,String> map; @Value("#{${populate.map:null}}}") // 默認值是null private Map<String, String> map2; @Value("#{${populate.map:{k1:'v1',k2:'v2'}}}") // 默認值是{"k1":"v1","k2":"v2"} private Map<String, String> map3; @Value("#{${populate.mapList:{}}}") // 值為{"key1":["v11","v12"],"key2":["v21","v22"],"key3":["v31","v32"]} private Map<String,List<String>> mapList;
${} 與 #{} #{…}
- #{…} 主要用于加載外部屬性文件中的值
- ${…} 用于執(zhí)行SpEl表達式,并將內(nèi)容賦值給屬性
- #{…} 和 $ {…} 可以混合使用,但是必須#{}外面,${}在里面
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決idea報錯 Connot resolve column 的問題
這篇文章主要介紹了解決idea報錯 Connot resolve column 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java負載均衡算法實現(xiàn)之輪詢和加權(quán)輪詢
網(wǎng)上找了不少負載均衡算法的資源,都不夠全面,后來自己結(jié)合了網(wǎng)上的一些算法實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java負載均衡算法實現(xiàn)之輪詢和加權(quán)輪詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04Java 將字符串動態(tài)生成字節(jié)碼的實現(xiàn)方法
本篇文章主要是對Java將字符串動態(tài)生成字節(jié)碼的實現(xiàn)方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01Maven管理多模塊應(yīng)用的統(tǒng)一版本號實現(xiàn)
本文主要介紹了Maven管理多模塊應(yīng)用的統(tǒng)一版本號實現(xiàn),使用versions-maven-plugin插件和占位符結(jié)合flatten-maven-plugin插件來實現(xiàn),感興趣的可以了解一下2024-12-12Spring Security如何在Servlet中執(zhí)行
這篇文章主要介紹了Spring Security如何在Servlet中執(zhí)行,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04