@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注解同时使用,否则会报错

 

 

https://cxyroad.blog.csdn.net/article/details/113750023

posted on 2021-10-12 19:07  smile学子  阅读(829)  评论(0)    收藏  举报