我使用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
,但仍然会在FileNotFoundException
上获得/home/kaykay/webextractor.properties
。我知道我可以创建这个文件并将其留空,但我想知道这里有什么问题。
答案 0 :(得分:33)
ignoreUnresolvablePlaceholders
设置为true将忽略未设置的占位符而不抛出异常。
例如,如果您的类@Value("${person.age}")
中包含以下属性,并且您的属性文件中未设置相应的值。
设置为true的ignoreResourceNotFound
属性将具有您期望的行为,即忽略未找到的资源。
希望这会有所帮助。
答案 1 :(得分:9)
我已经解决了你的问题,我认为Osiris对于财产ignoreUnresolvablePlaceholders
是正确的。但是如果你的话,你应该设置属性ignoreResourceNotFound
为真。因此,如果文件不存在,那么它将忽略该文件。
修改后的代码将是
<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>
试试这段代码并告诉我。