Spring报Could not resolve placeholder解决法

2025-10-27 07:52:15

1、比如我有一个dao.xml读取dbConnect.properties,还有一个dfs.xml读取dfsManager.properties,然后web.xml统一load这两个xml文件

Spring报Could not resolve placeholder解决法

2、如果这两个xml文件中分别有

<!-- dao.xml -->  

<context:property-placeholder location="WEB-INF/config/db/dbConnect.properties" />  

  

<!-- dfs.xml -->  

<context:property-placeholder location="WEB-INF/config/dfs/dfsManager.properties" />  

那么,一定会出"Could not resolve placeholder"。

Spring报Could not resolve placeholder解决法

3、一定要记住,不管是在一个spring文件还是在多个Spring文件被统一load的情况下,直接写

<context:property-placeholder location="" />  

<context:property-placeholder location="" />   

是不允许的。

Spring报Could not resolve placeholder解决法

4、解决方案:

  (1) 在Spring 3.0中,可以写:

<context:property-placeholder location="xxx.properties" ignore-unresolvable="true"  

/>  

<context:property-placeholder location="yyy.properties" ignore-unresolvable="true"  

/>

注意两个都要加上ignore-unresolvable="true",一个加另一个不加也是不行的。

Spring报Could not resolve placeholder解决法

5、(2) 在Spring 2.5中,<context:property-placeholder>没有ignore-unresolvable属性,此时可以改用PropertyPlaceholderConfigurer。其实<context:property-placeholder location="xxx.properties" ignore-unresolvable="true" />与下面的配置是等价的。

<bean id="随便" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  

    <property name="location" value="xxx.properties" />  

    <property name="ignoreUnresolvablePlaceholders" value="true" />   

</bean>  

正因为如此,写多个PropertyPlaceholderConfigurer不加ignoreUnresolvablePlaceholders属性也是一样会出"Could not resolve placeholder"。

Spring报Could not resolve placeholder解决法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢