zoukankan      html  css  js  c++  java
  • 日常踩坑笔记:spring的context:property-placeholder标签

    背景:

    原来的项目一直跑着没有问题,今天突然想在原有项目的基础上,加上redis进行数据的缓存,原来项目的架构就是传统的SSM框架,于是,大刀阔斧的开始改装了。。。

    编写redis的配置文件——redis.properties。。。

    编写redis的xml配置文件——redis-context.xml。。。

    在spring的主配置文件(我的ssm项目本来只有这么一个xml配置文件)spring-mvc.xml引入刚刚编写redis-context.xml文件。。。

    在数据层注入redis实例,进行数据缓存。。。

    一顿操作猛于虎,一切貌似挺简单,挺顺利,但是启动的时候就开始报错了,一直在报Could not resolve placeholder错误:

    仔细观察了配置文件,确实有这个配置啊,而且也通过spring的context:property-placeholder标签引入的该配置文件:

    但是就是报找不到这个属性,于是,去问问度娘吧,原来,spring容器只会维护一个PropertyPlaceholderConfigurer的bean实例,当spring发现容器中有一个该实例后,就会忽略其余的,所以,该标签只能配置一个,多余的spring会自动忽略。

    问题知道了,那么怎么解决呢?

    度娘的说法很简单,只需要在context:property-placeholder标签中添加一个属性ignore-unresolvable="true"即可!

    事实证明,我想的太简单了,确实,这样的做法大部分情况下就解决了上述报的错误,只要在所有的context:property-placeholder标签上都加上ignore-unresolvable="true"属性就可以了,可是我翻遍了我的项目,确保所有的context:property-placeholder标签上都加上了这个属性,可是还是报上述的错误,耐着性子,继续找。。。

    既然是配置文件方面报的错,那就把重点放在配置文件的读取上,于是我发现了数据库的配置文件,是这么读取的:

    眼前是不是一亮,虽然不是context:property-placeholder标签,但它也是一个PropertyPlaceholderConfigurer实例,那就没跑了,肯定是你了,进去看一看,果然有这个属性:

    果断的给它配置一个华丽丽的true:

    再次启动,完美。。。可以开心的去写缓存了。。。

  • 相关阅读:
    在调试asp.net程序时,提示windows窗体身份验证错误怎么办
    关于用css数字与汉字的垂直对其问题
    如何在存储过程中使用like操作符
    iframe的页面内容如何获取父页面的地址
    Visual Studio 2005常用插件搜罗(zz)
    如何通过javascript动态改变按钮的css属性值
    双十一数据库也疯狂,SQL Server 无法生成 FRunCM 线程,求解
    Oracle 连接玩我!ORA12514及ORA28547错误解决
    ASP.NET MVC Web API 学习笔记第一个Web API程序
    SQL Server数据库同步问题分享(三)创建订阅
  • 原文地址:https://www.cnblogs.com/Oven5217/p/9008159.html
Copyright © 2011-2022 走看看