使用 SpEL 的 Spring @Value 注释有一个有趣的问题。设置 null 的默认值适用于 String 变量。但是,对于 Set 变量则不然。
所以,这是有效的(varStr 为空):
@Value("${var.string:#{NULL}}")
private String varStr;
Run Code Online (Sandbox Code Playgroud)
而这不是(varSet 现在包含一个带有“#{NULL}”的元素):
@Value("#{'${var.set:#{NULL}}'.split(',')}")
private Set<String> varSet;
Run Code Online (Sandbox Code Playgroud)
问题是如何使其与 Set 变量一起工作,以便默认情况下将其设置为 null。
对你的帮助表示感谢。