春季@Value空列表作为默认值

2022-09-01 15:27:41

有没有办法将空列表设置为Spring中属性的默认值,如下所示:

@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;

显然不是新的ArrayList,但我需要一个空列表。


答案 1

在查看了SpEL规范并结合@javaguy的答案后,我想出了这个:

@Value("${my.list.of.strings:}#{T(java.util.Collections).emptyList()}")
private List<String> myList;

答案 2

实际上,在当前的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<>();

推荐