我在Spring bean中具有以下内容:
@Value("${myValue}")
private String value;
该值已正确注入。但是,变量必须是可选的,它作为命令行参数传入(然后使用SimpleCommandLinePropertySource将其添加到Spring上下文中),并且此参数将不会始终存在。
为了提供默认值,我尝试了以下两种方法:
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
但是在每种情况下,即使有实际值,冒号后的默认参数也会被注入-这似乎覆盖了Spring应该注入的值。
指定不需要@Value的正确方法是什么?
谢谢
这很奇怪……默认值应仅用作默认值(即,未定义属性时)。您是否可以再次检查“即使有实际值也注入默认值”的语句(例如,如果没有旧的编译类)?
—
Pavel Horal 2014年
@Value("${some.prop:}")
确实为我工作。那是该变量的唯一注释。
您可以发布您的应用程序配置吗?
—
弗拉基米尔·瓦加耶夫(Fladimir Vagaytsev)
@Autowired(必填= false)?
—
安德鲁·斯科特·埃文斯