我想在Spring XML配置文件中定义默认属性值。我希望此默认值为null
。
这样的事情:
...
<ctx:property-placeholder location="file://${configuration.location}"
ignore-unresolvable="true" order="2"
properties-ref="defaultConfiguration"/>
<util:properties id="defaultConfiguration">
<prop key="email.username" >
<null />
</prop>
<prop key="email.password">
<null />
</prop>
</util:properties>
...
这不起作用。是否可以在Spring XML配置中为属性定义null
默认值?
答案 0 :(得分:77)
最好以这种方式使用Spring EL
<property name="password" value="${email.password:#{null}}"/>
检查是否指定了email.password
并将其设置为null
(不是"null"
字符串)否则
答案 1 :(得分:3)
查看PropertyPlaceholderConfigurer#setNullValue(String)
它声明:
默认情况下,不定义此类空值。这意味着除非您明确映射相应的值
,否则无法将null表示为属性值
所以只需定义字符串&#34; null&#34;在PropertyPlaceholderConfigurer中映射null值:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="nullValue" value="null"/>
<property name="location" value="testing.properties"/>
</bean>
现在您可以在属性文件中使用它了:
db.connectionCustomizerClass=null
db.idleConnectionTestPeriod=21600
答案 2 :(得分:2)
您可以尝试使用Spring EL。
<prop key="email.username">#{null}</prop>
答案 3 :(得分:0)
您似乎可以执行以下操作:
@Value("${some.value:null}")
private String someValue;
和
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfig() {
PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();
propertySourcesPlaceholderConfigurer.setNullValue("null");
return propertySourcesPlaceholderConfigurer;
}