10

我正在使用 spring 的 PropertyPlaceHolderConfigurer,如下所示:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="locations">
        <list>
            <value>classpath:default.properties</value>
            <value>file:${user.home}/webextractor.properties</value>
        </list>
    </property>
</bean>

尽管已将ignoreUnresolvablePlaceholders属性设置为true,但我仍然得到一个FileNotFoundExceptionon /home/kaykay/webextractor.properties。我知道我可以创建这个文件并将其留空,但我想知道这里出了什么问题。

4

2 回答 2

35

设置为 true 将忽略未设置的ignoreUnresolvablePlaceholders占位符并且不会引发异常。例如,如果您的类中有以下属性,@Value("${person.age}")并且在属性文件中没有设置相应的值。

设置为 true的ignoreResourceNotFound属性将具有您预期的行为,即忽略未找到的资源。

希望这有帮助。

于 2012-10-07T15:54:00.047 回答
9

我已经解决了你的问题,我认为 Osiris 对财产的看法是正确的ignoreUnresolvablePlaceholders。但在你的情况下,你应该将属性设置为ignoreResourceNotFoundtrue。因此,如果该文件不存在,那么它将忽略该文件。

修改后的代码将是

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="locations">
        <list>
            <value>classpath:default.properties</value>
            <value>file:${user.home}/webextractor.properties</value>
        </list>
    </property>
</bean>

试试这个代码,让我知道。

于 2013-07-31T12:30:01.827 回答