春季@Value空列表作为默认值
2022-09-01 15:27:41
有没有办法将空列表设置为Spring中属性的默认值,如下所示:
@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;
显然不是新的ArrayList,但我需要一个空列表。
有没有办法将空列表设置为Spring中属性的默认值,如下所示:
@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;
显然不是新的ArrayList,但我需要一个空列表。
在查看了SpEL规范并结合@javaguy的答案后,我想出了这个:
@Value("${my.list.of.strings:}#{T(java.util.Collections).emptyList()}")
private List<String> myList;
实际上,在当前的Spring版本中,只使用一个带有值的符号。:
empty default
我正在使用的完整示例:
@Value("${my.custom.prop.array:}")
private List<Integer> myList;
为了安全起见,我还将 init 添加到 List 变量中:
@Value("${my.custom.prop.array:}")
private List<Integer> myList = new ArrayList<>();