理解Could not resolve placeholder——XML引入配置文件错误

引入配置文件错误,首先确保properties文件内和xml中引用的映射没问题,这个应该都不是问题。

那么看着完全没有问题,还是抛出Could not resolve placeholder,是为什么?

xml中能使用例如${xxx}作为占位符,是因为你使用了<context:property-placeholder location="/xxx/XXX.properties"/>,而这个配置其实帮你创建了一个org.springframework.beans.factory.config.PropertySourcesPlaceholderConfigurer的bean,当程序加载到context:property-placeholder时,会扫描所有的bean,然后适配,但是如果你项目中引入了多个资源文件,那么势必在第一次扫描所有bean的时候会有不适配的情况发生,好比我现在扛着一袋子萝卜去找坑种,一个萝卜一个坑,第一袋萝卜找一遍所有的坑,把我袋子里的萝卜扔进坑里,但是发现还有很多坑,而我的袋子里没有这些坑的萝卜,这些萝卜在另外一个袋子里,而我此时不知道,以为自己多挖了很多坑,想报警。

解决方法:

加入ignore-unresolvable="true"配置,例如

<context:property-placeholder location="classpath:dubbo-service-producter.properties" ignore-unresolvable="true"/>

这个配置是告诉spring,当你找不到萝卜坑又多出来,想抛出Could not resolve placeholder时,小老弟你先等等,先检查一下别的袋子里有没有萝卜。ignore-unresolvable="true"的作用就是没找到萝卜的时候,先用${}替代,空的,等等找到这个坑的萝卜了再填进去。

所以,按照逻辑,ignore-unresolvable="true"这个配置是要添加在先加载的xml中,因为你要告诉的是他,没有萝卜先别着急。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值