这是我的直截了当的问题,因为它的背景很少。
我使用application.properties
启动应用程序allowedValues=Hello, Hi, null
我正在读取spring组件中的值,如下所示
@Value("${allowedValues}")
private String[] allowedGreetings;
运行时,allowedGreetings
数组中的值与预期值("Hello", "Hi", "null")
但我想要的是一种将数组作为("Hello", "Hi", null)
正如您所看到的,我无法将allowedGreetings
的默认值设置为null,因为我希望将null作为数组的成员。
这是为了避免编写函数来读取数组并将"null"
转换为数组中的null
。春天有可能吗?
答案 0 :(得分:0)
我有一个这样的课程
package tuladhar.aman;
@Component // @Service , @Controller etc
public class Application {}
创建静态方法parseProperties
和parseString
。
使用SpEL调用方法
"#{T(tuladhar.aman.Application).parseProperties('${allowedValues}')}"
public static List<String> parseProperties(String[] array) {
return Stream
.of(array)
.map(Application::parseString)
.collect(Collectors.toList());
}
public static String parseString(String s){
return "null".equals(s) ? null : s;
}
@Value("#{T(tuladhar.aman.Application).parseProperties('${allowedValues}')}")
private List<String> allowedValues;