EhCache WebCache 与 SpringMVC集成时 CacheManager冲突的问题
2015-11-24 14:39
561 查看
在使用EhCache Web组件时 需要将
在EhCache2.5版本以上 同一个JVM当中不允许出现俩个相同名字的CacheManager 否则会报错。
默认情况下SimplePageCachingFilter 与 Spring各种都会创建一个CacheManager 这样在服务器启动时就会报错。
后来通过分析源代码解决了此问题。
在SimplePageCachingFilter当中我们看它是如何获取CacheManager的
我们通过覆写这个方法 让它读取我们的 ehcache.xml
上面就完成了对CacheManager的管理 接下来就还需要配置Spring的CacheManager 让他俩都读取同一个文件就可以了。
SimplePageCachingFilter 需要用到的CacheManager。
在EhCache2.5版本以上 同一个JVM当中不允许出现俩个相同名字的CacheManager 否则会报错。
默认情况下SimplePageCachingFilter 与 Spring各种都会创建一个CacheManager 这样在服务器启动时就会报错。
后来通过分析源代码解决了此问题。
在SimplePageCachingFilter当中我们看它是如何获取CacheManager的
protected CacheManager getCacheManager() { return CacheManager.getInstance(); }
我们通过覆写这个方法 让它读取我们的 ehcache.xml
@Override protected CacheManager getCacheManager() { URL url = getClass().getResource("/ehcache.xml"); return CacheManager.create(url); }
上面就完成了对CacheManager的管理 接下来就还需要配置Spring的CacheManager 让他俩都读取同一个文件就可以了。
<!-- 配置Ehcache缓存管理器,读取配置文件 --> <bean id="ehCacheManagerFactoryBean" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml"></property> <property name="shared" value="true"></property> </bean> <!-- 配置缓存管理器,获取cache --> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" > <property name="cacheManager" ref="ehCacheManagerFactoryBean" /> </bean>
shared:这个属性设置为true
相关文章推荐
- java日期处理工具类
- spring配置SessionFactory ,transactionManager以及其他特性
- java获取文件后缀名
- java web服务器上画图不显示的问题
- java NIO简介
- eclipse创建Maven-web工程参考
- eclipse找不到或无法加载主类
- java源码分析之HashMap(jdk1.6)
- eclipse 自动 注释
- MyEclipse 2015 移动开发教程
- 01-2-SpringMVC-为Myeclipse安装spring的插件
- 01-1-SpringMVC-怎么从官网下载Spring的jar包
- win7/win8.1/win10系统下如何配置Java环境变量 Java环境变量的配置教程介绍
- Spring3 MVC 深入研究
- 【LeetCode】189 Rotate Array 小侃小解
- 在JSP中调用JAVA类和使用JavaBean有什么区别?
- JAVA使用JDBC操作数据库
- JavaEE_JSP_JSTL标签 参考手册
- 【LeetCode】又开新篇章啦
- java计算公式