spring 配置加載properties文件的時候,報spring
Could not resolve placeholder 錯誤。spa
通過仔細查找,排除文件路徑,文件類容錯誤的緣由,通過查找相關資料,出現"Could not resolve placeholder"頗有多是使用了多個PropertyPlaceholderConfigurer或者多個<context:property-placeholder>的緣由或者是多個PropertyPlaceholderConfigurer與<context:property-placeholder>混合使用。code
若是配置以下必定會報以上錯誤,無論是在多個配置文件中仍是分別在不一樣文件中it
<context:property-placeholder location="WEB-INF/config/db/XX.properties" /> <context:property-placeholder location="WEB-INF/config/dfs/XX.properties" />
解決方案:
在Spring3中能夠用以下方式解決,增長ignore-unresolvable="true"屬性,注意必須都要加上io
<context:property-placeholder location="xxx.properties" ignore-unresolvable="true" /> <context:property-placeholder location="yyy.properties" ignore-unresolvable="true" />
在Spring 2.5中,<context:property-placeholder>沒有ignore-unresolvable屬性,此時能夠改用PropertyPlaceholderConfigurer。其實<context:property-placeholder location="xxx.properties" ignore-unresolvable="true" />與下面的配置是等價的class
<bean id="XX" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="xxx.properties" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> </bean>
系統中若是報如上錯誤,能夠這樣查找:搜索系統中全部包含property-placeholder的文件,看是否包含ignore-unresolvable屬性,而後搜索系統中全部包含PropertyPlaceholderConfigurer文件,看是否包含ignoreUnresolvablePlaceholders屬性。stream
今天系統中報如上錯誤,就是由於按照PropertyPlaceholderConfigurer方式沒有配置ignoreUnresolvablePlaceholders屬性,而按照context:property-placeholder方式配置的都包含了ignore-unresolvable屬性。配置
歸根到底就是規範沒到位,加載配置文件沒統一搜索