關(guān)于@Value注入List,Map及設(shè)置默認(rèn)值問題
@Value注入List,Map及設(shè)置默認(rèn)值
注入String
- yml
populate: string: stringValue
- 注入
@Value("${populate.string2:}") // 默認(rèn)值是空字符串“”
private String stringV;
@Value("${populate.string:null}") // 默認(rèn)值是null
private String stringV2;
@Value("${populate.string:defaultValue}") // 默認(rèn)值是“defaultValue”
private String stringV3;
注入Array
- yml
populate: array: array1,array2,array3
- 注入
@Value("${populate.array:}") // 默認(rèn)值是[]
private String[] array;
@Value("${populate.array:a1,a2,a3}") // 默認(rèn)值是[a1,a2,a3]
private String[] array1;
注入List
- yml
populate: list: list1,list2,list3
- 注入
#{'${populate.list:}'.split(','): #{} 內(nèi)是SpEL表達(dá)式,使用 split 函數(shù)指定了分隔符;
${populate.list}:不指定分隔符則會默認(rèn)以, 作為分隔符。(可能較低版本的Spring不支持,未驗證)
@Value("${populate.list:}") // 默認(rèn)值是空List,{}
private List<String> list0;
@Value("#{'${populate.list:}'.split(',')}") // 默認(rèn)值是包含一個空字符串的List {“”}
private List<String> list1;
@Value("${populate.list:l1,l2,l3}") // 默認(rèn)值是{l1,l2,l3}
private List<String> list2;
@Value("#{'${populate.list:l1,l2,l3}'.split(',')}") // 默認(rèn)值是{l1,l2,l3}
private List<String> list3;
@Value("#{'${populate.list:,}'.split(',')}") // 默認(rèn)值是空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:{}}}") // 默認(rèn)值是null
private Map<String,String> map;
@Value("#{${populate.map:null}}}") // 默認(rèn)值是null
private Map<String, String> map2;
@Value("#{${populate.map:{k1:'v1',k2:'v2'}}}") // 默認(rèn)值是{"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表達(dá)式,并將內(nèi)容賦值給屬性
- #{…} 和 $ {…} 可以混合使用,但是必須#{}外面,${}在里面
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中負(fù)數(shù)的絕對值竟然不一定是正數(shù)
這篇文章主要介紹了Java中負(fù)數(shù)的絕對值竟然不一定是正數(shù),文中給大家提到Java 中怎么把負(fù)數(shù)轉(zhuǎn)換為正數(shù),需要的朋友可以參考下2021-07-07
Java實現(xiàn)Word/Excel/TXT轉(zhuǎn)PDF的方法
這篇文章主要介紹了Java實現(xiàn)Word/Excel/TXT轉(zhuǎn)PDF的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
SpringCloud?GateWay網(wǎng)關(guān)示例代碼詳解
這篇文章主要介紹了SpringCloud?GateWay網(wǎng)關(guān),Spring?cloud?Gateway的功能很多很強大,文中提到了Spring?Cloud?Gateway中幾個重要的概念,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-04-04
jpa使用manyToOne(opntional=true)踩過的坑及解決
這篇文章主要介紹了jpa使用manyToOne(opntional=true)踩過的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
使用apache 的FileUtils處理文件的復(fù)制等操作方式
這篇文章主要介紹了使用apache 的FileUtils處理文件的復(fù)制等操作方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

