Spring的PropertyPlaceHolderConfigurer不会忽略不可解析的文件

kga*_*ron 9 spring

我使用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>
Run Code Online (Sandbox Code Playgroud)

尽管已经设置的ignoreUnresolvablePlaceholders属性true,我仍然获得FileNotFoundException/home/kaykay/webextractor.properties.我知道我可以创建这个文件并将其留空,但我想知道这里有什么问题.

Axx*_*ris 34

ignoreUnresolvablePlaceholders设置为true将忽略不设置,而不是抛出一个异常占位符.例如,如果类中包含以下属性,@Value("${person.age}")并且属性文件中未设置相应的值.

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

希望这有帮助.


小智 9

我已经解决了你的问题,我认为奥西里斯对这家酒店是正确的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>
Run Code Online (Sandbox Code Playgroud)

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