如何将@Value定义为可选的

我在Spring bean中有以下内容:

@Value("${myValue}") private String value; 

该值被正确注入。 但是,variables需要是可选的,它作为命令行参数传入(然后使用SimpleCommandLinePropertySource将其添加到Spring上下文中),并且该参数不会始终存在。

我已经尝试了以下两种方法来提供默认值:

 @Value("${myValue:}") @Value("${myValue:DEFAULT}") 

但是在每种情况下,即使有实际的值,冒号之后的默认参数也被注入 – 这看起来会覆盖Spring应该注入的内容。

什么是正确的方式来指定@Value不是必需的?

谢谢

什么是正确的方式来指定@Value不是必需的?

工作的假设,“不要求”,你的意思是null然后…

您已经正确地注意到,您可以在:字符的右侧提供默认值。 你的例子是@Value("${myValue:DEFAULT}")

您不限于纯string作为默认值。 你可以使用SPELexpression式,而一个简单的SPELexpression式返回null就是:

 @Value("${myValue:#{null}}") 
Interesting Posts