Spring @Value空列表默认​​为

Rob*_*uez 10 java spring spring-annotations

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

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

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

Rob*_*uez 18

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

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


sf_*_*sf_ 6

实际上,在当前的 Spring 版本中,只使用一个:带有empty default值的符号。

我正在使用的完整示例:

@Value("${my.custom.prop.array:}")
private List<Integer> myList;
Run Code Online (Sandbox Code Playgroud)

为了确保安全,我还将 init 添加到 List 变量中:

@Value("${my.custom.prop.array:}")
private List<Integer> myList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)