春天如何定义非强制性财产?

Jul*_*ias 31 java spring

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

我的属性代码如下所示:

@Configuration
public class MyProps {

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

    ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

tib*_*tof 61

您可以使用默认值:

@Value("${prop1:}")
public String prop1;
Run Code Online (Sandbox Code Playgroud)

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

  • 你也可以设置空值:@Value("$ {prop1:#{null}}") (28认同)

小智 10

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

<context:property-placeholder ignore-unresolvable="true" ... />
Run Code Online (Sandbox Code Playgroud)