Spring 带列表和默认值的@Value 注释
Spring @Value annotation with List and default value
我在配置文件中有一个 属性,其中包含这种格式的值列表。格式必须保持不变。
myapp.values=value1,value2,value2
我在我的配置中使用这些值 class 就像这样:
@Value("#{'{myapp.values}'.split(,)}")
private List<String> values;
我的问题是,如果配置文件中没有这样的 属性 或者 属性 是空的,有没有办法设置默认值(空列表或空列表)?
我尝试 google 但没有成功。人们要么使用不适合我的myapp.values={value1,value2,value3}
,要么使用不适合我的格式,或者对简单变量使用默认值,而不是列表。
我的问题只是关于通过更改@Value 注释来实现目标。请不要建议解决方法
@Value("${myapp.values:}#{T(java.util.Collections).emptyList()}")
private List<String> defaultToEmpty;
或
@Value("#{T(java.util.Arrays).asList('${myapp.values:}')}")
private List<String> defaultToEmpty = new ArrayList();
实际上,只有一个具有 empty default
值的符号 :
可以工作:
@Value("${myapp.values:}")
private List<String> values;
我在配置文件中有一个 属性,其中包含这种格式的值列表。格式必须保持不变。
myapp.values=value1,value2,value2
我在我的配置中使用这些值 class 就像这样:
@Value("#{'{myapp.values}'.split(,)}")
private List<String> values;
我的问题是,如果配置文件中没有这样的 属性 或者 属性 是空的,有没有办法设置默认值(空列表或空列表)?
我尝试 google 但没有成功。人们要么使用不适合我的myapp.values={value1,value2,value3}
,要么使用不适合我的格式,或者对简单变量使用默认值,而不是列表。
我的问题只是关于通过更改@Value 注释来实现目标。请不要建议解决方法
@Value("${myapp.values:}#{T(java.util.Collections).emptyList()}")
private List<String> defaultToEmpty;
或
@Value("#{T(java.util.Arrays).asList('${myapp.values:}')}")
private List<String> defaultToEmpty = new ArrayList();
实际上,只有一个具有 empty default
值的符号 :
可以工作:
@Value("${myapp.values:}")
private List<String> values;