如何定义春季非强制性属性?

2022-09-01 07:18:39

我正在使用Spring 3和PropertyPlaceholderConfigurator。

我的属性代码如下所示:

@Configuration
public class MyProps {

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

    ...
}

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

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


答案 1

您可以使用默认值:

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

和 spring 将注入一个空字符串,如果未定义该属性。语法为 。${property:defaultValue}


答案 2

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

<context:property-placeholder ignore-unresolvable="true" ... />

推荐