springboot@Value 接受集合为空
时间: 2024-09-19 18:06:11 浏览: 72
Springboot中@Value的使用详解
5星 · 资源好评率100%
`@Value` 是Spring Boot中用于注入属性值的一个注解,通常用于从配置文件、环境变量或其他外部源获取字符串值。如果你尝试将一个空集合赋值给一个接受集合类型的字段,并使用了`@Value`,它并不会直接导致异常,因为`@Value`默认处理null值。
例如,如果你有一个字段声明如下:
```java
List<String> myValues = @Value("${myCollection}")
```
如果`myCollection`配置项在应用上下文中不存在或者其值解析为空,`myValues`会被设置为`null`而非一个非空的集合。当然,如果期望的是一个空列表而不是`null`,可以显式地指定:
```java
List<String> myValues = new ArrayList<>();
@Value("${myCollection:${myCollection}}")
public void setMyValues(String collectionString) {
this.myValues = collectionString.isEmpty() ? Collections.emptyList() : Arrays.asList(collectionString.split(","));
}
```
在这个例子中,如果没有提供`myCollection`,`setMyValues`方法会得到一个空列表。
阅读全文