1、比如我有一个dao.xml读取dbConnect.properties,还有一个dfs.xml读取dfsManager.properties,然后web.xml统一load这两个xml文件
2、如果这两个xml文件中分别有<!--dao.xml--><context:property-placeholderlocation="WEB-INF/config/db/dbConnect.properties"/><!--dfs.xml--><context:property-placeholderlocation="WEB-INF/config/dfs/dfsManager.properties"/>那么,一定会出"Could not resolve placeholder"。
3、一定要记住,不管是在一个spring文件还是在多个Spring文件被统一load的情况下,直接写<context:property-placeholderlocation=""/><context:property-placeholderlocation=""/> 是不允许的。
4、解决方案: (1) 在Spring 3.0中,可以写:<context:property-placeholderlocation="xxx.properties"ignore-unresolvable="true"/><context:property-placeholderlocation="yyy.properties"ignore-unresolvable="true"/>注意两个都要加上ignore-unresolvable="true",一个加另一个不加也是不行的。
5、(2) 在Spring 2.5中,<context:property-placeholder>没有ignore-unresolvable属性,此时可以改用PropertyPlaceholderConfigurer。其实<context:property-placeholder location="xxx.properties"ignore-unresolvable="true"/>与下面的配置是等价的。<beanid="随便"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><propertyname="location"value="xxx.properties"/><propertyname="ignoreUnresolvablePlaceholders"value="true"/></bean> 正因为如此,写多个PropertyPlaceholderConfigurer不加ignoreUnresolvablePlaceholders属性也是一样会出"Could not resolve placeholder"。