如何将@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}}")