Java 如何在spring中定义非强制属性?
我将Spring3与PropertyPlaceHolderConfiguration一起使用 我的属性代码如下所示:Java 如何在spring中定义非强制属性?,java,spring,Java,Spring,我将Spring3与PropertyPlaceHolderConfiguration一起使用 我的属性代码如下所示: @Configuration public class MyProps { @Value("${prop1}") public String prop1; ... } 如果我的.properties文件中没有prop1,spring将无法初始化它的上下文 问题是如何定义此属性不是强制性的?某些注释、配置?我不确定是否可以将单个属性设置为可选,但您肯定
@Configuration
public class MyProps {
@Value("${prop1}")
public String prop1;
...
}
如果我的.properties文件中没有prop1,spring将无法初始化它的上下文
问题是如何定义此属性不是强制性的?某些注释、配置?我不确定是否可以将单个属性设置为可选,但您肯定可以强制属性占位符忽略未解析的属性:
<context:property-placeholder ignore-unresolvable="true" ... />
您可以使用默认值:
@Value("${prop1:}")
public String prop1;
如果没有定义属性,spring将注入一个空字符串。语法为
${property:defaultValue}
要忽略所有无法解析的属性而不是特定属性,可以在配置类中使用以下bean:
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
configurer.setIgnoreUnresolvablePlaceholders(true);
return configurer;
}
在这种情况下,所有属性都不是强制性的,但我只希望一些选定的属性是可选的,其余的是强制性的。我可以用一些注释来实现这一点吗?您可以为其编写单独的属性占位符,也可以设置空值:@Value(${prop1:#{null}}”)