@Value注解作用:读取配置文件中的属性
${ property : default_value }
#{ obj.property? :default_value }
$注入的是外部配置文件对应的property,使用“:”对未配置或值为空的属性设置默认值。
#注入的是SpEL表达式对应的内容,使用“?:”对未配置或值为空的表达式设置默认值。
default_value为默认值。
在配置文件中,存储List或是Map这种类型的数据
数组:
test:
array: aaa,bbb,ccc
@Value("${test.array}")
private String[] testArray1;
List:
test:
list: aaa,bbb,ccc
@Value("#{'${test.list:}'.empty ? null : '${test.list:}'.split(',')}")
private List<String> testList;
Set:
test:
set: 111,222,333,111
@Value("#{'${test.set:}'.empty ? null : '${test.set:}'.split(',')}")
private Set<Integer> testSet;
// output: [111, 222, 333]
Map:
test:
map: '{"name": "zhangsan", "sex": "male"}'
@Value("#{${test.map}}")
private Map<String,String> map;
注意:@Value注解不能和@AllArgsConstructor注解同时使用,否则会报错
浙公网安备 33010602011771号