【轉】Could not resolve placeholder 解決方案

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屬性。配置



歸根到底就是規範沒到位,加載配置文件沒統一搜索

相關文章
相關標籤/搜索