spring如何定义非强制性财产?

我正在使用带有PropertyPlaceholderConfigurator的spring 3。

我的属性代码如下所示:

@Configuration public class MyProps { @Value("${prop1}") public String prop1; ... } 

如果我的.properties文件中没有prop1,则spring无法初始化它的上下文。

问题是如何定义此属性不是强制性的? 一些注释,配置?

您可以使用默认值:

 @Value("${prop1:}") public String prop1; 

如果未定义属性,则spring将注入空字符串。 语法是${property:defaultValue}

我不确定是否可以使单个属性可选,但肯定可以强制属性占位符忽略未解析的属性: