36

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>
...

これはうまくいきません。nullSpring XML 構成でプロパティのデフォルト値を定義することさえ可能ですか?

4

4 に答える 4

103

そういう意味ではSpring ELを使ったほうがいい

<property name="password" value="${email.password:#{null}}"/>

が指定されているかどうかをチェックemail.passwordし、指定されてnullいない場合は ("null"文字列ではなく) に設定します。

于 2013-07-04T12:47:12.660 に答える
4

PropertyPlaceholderConfigurer#setNullValue(String)を見てください

それは次のように述べています:

デフォルトでは、そのような null 値は定義されていません。これは、対応する値を明示的にマップしない限り、null をプロパティ値として表現する方法がないことを意味します。

したがって、文字列「null」を定義して、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
于 2014-04-03T07:14:01.517 に答える
2

Spring EL を試すことができます。

<prop key="email.username">#{null}</prop>
于 2013-05-24T12:48:40.257 に答える