yml
prefix:
string: yw
array: array1,array2,array3
list: list1,list2,list3
map: "{
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}"
mapList: "{
key1: 'v11,v12',
key2: 'v21,v22',
key3: 'v31,v32'
}"
Java
/**
* 默认值是 空字符串""
* 值是yw
*/
@Value("${prefix.string:}")
private String str1;
/**
* 默认值是 "null" 字符串
* 值是yw
*/
@Value("${prefix.string:null}")
private String str2;
/**
* 默认值是 "yuan"
* 值是yw
*/
@Value("${prefix.string:yuan}")
private String str3;
/**
* 默认值是空数组 []
* 值是["array1", "array2", "array3"]
*/
@Value("${prefix.array:}")
private String[] array;
/**
* 默认值是["a1", "a2", "a3"]
* 值是["array1", "array2", "array3"]
*/
@Value("${prefix.array:a1,a2,a3}")
private String[] array1;
/**
* 默认值是空列表 []
* 值是["list1","list2","list3"]
*/
@Value("${prefix.list:}")
private List<String> list;
/**
* 默认值是包含一个空字符串的List [""]
* 值是["list1","list2","list3"]
*/
@Value("#{'${prefix.list:}'.split(',')}")
private List<String> list1;
/**
* 默认值是 ["l1","l2","l3"]
* 值是["list1","list2","list3"]
*/
@Value("${prefix.list:l1,l2,l3}")
private List<String> list2;
/**
* 默认值是 ["l1","l2","l3"]
* 值是["list1","list2","list3"]
*/
@Value("#{'${prefix.list:l1,l2,l3}'.split(',')}")
private List<String> list3;
/**
* 默认值是空List []
* 值是["list1","list2","list3"]
*/
@Value("#{'${prefix.list:,}'.split(',')}")
private List<String> list4;
/**
* 默认值是null
* 值是{"key1":"value1","key2":"value2","key3":"value3"}
*/
@Value("#{${prefix.map:{}}}")
private Map<String,String> map;
/**
* 默认值是null
* 值是{"key1":"value1","key2":"value2","key3":"value3"}
*/
@Value("#{${prefix.map:null}}")
private Map<String, String> map2;
/**
* 默认值是{"k1":"v1","k2":"v2"}
* 值是{"key1":"value1","key2":"value2","key3":"value3"}
*/
@Value("#{${prefix.map:{k1:'v1',k2:'v2'}}}")
private Map<String, String> map3;
/**
* 默认值是 null
* 值是{"key1":["v11","v12"],"key2":["v21","v22"],"key3":["v31","v32"]}
*/
@Value("#{${prefix.mapList:{}}}")
private Map<String,List<String>> mapList;
说明
List
- #{’${prefix.list:}’.split(’,’): #{} 内是SpEL表达式,使用 split 函数指定了分隔符;
- ${prefix.list}:不指定分隔符则会默认以英文逗号, 作为分隔符。
Map
- key可以但不必被单引号包围
- value必须被单引号包围
指定初始值
String List Array
默认值不变
/**
* 默认值是 空字符串""
*/
@Value("${prefix.string:}")
private String str1="init";
/**
* 默认值是 "null" 字符串
*/
@Value("${prefix.string:null}")
private String str2="init";
/**
* 默认值是 "yuan"
*/
@Value("${prefix.string:yuan}")
private String str3="init";
/**
* 默认值是空数组 []
*/
@Value("${prefix.array:}")
private String[] array=new String[0];
/**
* 默认值是["a1", "a2", "a3"]
*/
@Value("${prefix.array:a1,a2,a3}")
private String[] array1=new String[0];
/**
* 默认值是空列表 []
*/
@Value("${prefix.list:}")
private List<String> list= Arrays.asList("init");
/**
* 默认值是包含一个空字符串的List [""]
*/
@Value("#{'${prefix.list:}'.split(',')}")
private List<String> list1= Arrays.asList("init");
/**
* 默认值是 ["l1","l2","l3"]
*/
@Value("${prefix.list:l1,l2,l3}")
private List<String> list2= Arrays.asList("init");
/**
* 默认值是 ["l1","l2","l3"]
*/
@Value("#{'${prefix.list:l1,l2,l3}'.split(',')}")
private List<String> list3= Arrays.asList("init");
/**
* 默认值是空List []
*/
@Value("#{'${prefix.list:,}'.split(',')}")
private List<String> list4= Arrays.asList("init");
Map
默认值为null的变为 空map
/**
* 默认值是 空map
*/
@Value("#{${prefix.map:{}}}")
private Map<String,String> initMap= new HashMap<>();
/**
* 默认值是 空map
*/
@Value("#{${prefix.map:null}}")
private Map<String, String> initMap2= new HashMap<>();
/**
* 默认值是{"k1":"v1","k2":"v2"}
*/
@Value("#{${prefix.map:{k1:'v1',k2:'v2'}}}")
private Map<String, String> initMap3= new HashMap<>();
/**
* 默认值是 空map
*/
@Value("#{${prefix.mapList:{}}}")
private Map<String,List<String>> initMapList= new HashMap<>();