SpringBoot @Value 属性注入

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<>();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值