spring+ehcache时遇到的问题,配置2个切点就会出现问题,一个的时候没事,求大神看一下

问题描述

ehcache主配置如下:<!--配置ehcache缓存管理器--><beanid="cacheManager"class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"><propertyname="configLocation"value="classpath:ehcache/ehcache.xml"/><propertyname="shared"value="true"/></bean><!--配置一个简单的缓存工厂bean对象--><beanid="simpleCache"class="org.springframework.cache.ehcache.EhCacheFactoryBean"><propertyname="cacheManager"ref="cacheManager"/><!--使用缓存关联ehcache.xml中的缓存配置--><propertyname="cacheName"value="mobileCache"/></bean><!--配置一个缓存拦截器对象,处理具体的缓存业务--><beanid="methodCacheInterceptor"class="com.scxxs.ehcache.MethodCacheInterceptor"><propertyname="cache"ref="simpleCache"/></bean><!--配置一个缓存拦截器对象,处理具体的缓存业务--><beanid="methodCacheAfterAdvice"class="com.scxxs.ehcache.MethodCacheAfterAdvice"><propertyname="cache"ref="simpleCache"/></bean><!--参与缓存的切入点对象(切入点对象,确定何时何地调用拦截器)--><beanid="methodCachePointCut"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><!--配置缓存aop切面--><propertyname="advice"ref="methodCacheInterceptor"/><!--配置哪些方法参与缓存策略--><!--.表示符合任何单一字元
解决方案二:
+表示符合前一个字元一次或多次
解决方案三:
*表示符合前一个字元零次或多次
解决方案四:
Escape任何Regularexpression使用到的符号--><!--.*表示前面的前缀(包括包名)表示print方法--><propertyname="patterns"><list><!--<value>com.scxxs.dao.*get*</value><value>com.scxxs.dao.*find*</value><value>com.scxxs.dao.*query*</value>--><value>.*find.*</value></list></property></bean><!--当发生create,save,insert,update,delete,remove等方法时,就会去flush一下--><beanid="methodCachePointCutAdvice"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><propertyname="advice"ref="methodCacheAfterAdvice"/><propertyname="patterns"><list><value>.*add.*</value></list></property></bean>ehcache.xml配置如下:<ehcachexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="ehcache.xsd"><!--设置缓存文件.data的创建路径。如果该路径是Java系统参数,当前虚拟机会重新赋值。下面的参数这样解释:user.home–用户主目录user.dir–用户当前工作目录java.io.tmpdir–默认临时文件路径--><diskStorepath="java.io.tmpdir"/><defaultCachemaxElementsInMemory="10000"eternal="false"timeToIdleSeconds="30"timeToLiveSeconds="30"overflowToDisk="false"/><!--配置自定义缓存maxElementsInMemory:缓存中允许创建的最大对象数eternal:缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期。timeToIdleSeconds:缓存数据的钝化时间,也就是在一个元素消亡之前,两次访问时间的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。timeToLiveSeconds:缓存数据的生存时间,也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。overflowToDisk:内存不足时,是否启用磁盘缓存。memoryStoreEvictionPolicy:缓存满了之后的淘汰算法。--><cachename="SimplePageCachingFilter"maxElementsInMemory="10000"eternal="false"overflowToDisk="false"timeToIdleSeconds="900"timeToLiveSeconds="1800"memoryStoreEvictionPolicy="LFU"/><cachename="mobileCache"maxElementsInMemory="10000"eternal="false"overflowToDisk="true"timeToIdleSeconds="1800"timeToLiveSeconds="3600"memoryStoreEvictionPolicy="LFU"/></ehcache>applicationContext.xmlspring主配置如下:<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property><propertyname="url"><value>jdbc:mysql://127.0.0.1:3306/mytest</value></property><propertyname="username"><value>root</value></property><propertyname="password"><value>root</value></property></bean>

解决方案

解决方案五:
<!--配置事务管理器--><beanid="transcationManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"/></bean><beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="configLocation"value="classpath:ibatis/SqlMapConfig.xml"/><!--src/WEB-INF/<propertyname="mapperLocations"value="classpath*:com/xxt/ibatis/dbcp/domain/user.map.xml"/>--></bean><beanid="sqlSession"class="org.mybatis.spring.SqlSessionTemplate"><constructor-argindex="0"ref="sqlSessionFactory"/></bean><tx:adviceid="txAdvice"transaction-manager="transcationManager"><tx:attributes><tx:methodname="insert*"propagation="REQUIRED"/><tx:methodname="del*"propagation="REQUIRED"/><tx:methodname="update*"propagation="REQUIRED"/><tx:methodname="*"read-only="true"/></tx:attributes></tx:advice><!--配置AOP切入点--><aop:config><aop:pointcutid="allManagerMethod"expression="execution(*com.scxxs.dao.*.*(..))"/><aop:advisoradvice-ref="txAdvice"pointcut-ref="allManagerMethod"/></aop:config><beanid="jdbcTemplate"class="org.springframework.jdbc.core.JdbcTemplate"><propertyname="dataSource"><reflocal="dataSource"/></property></bean><importresource="spring/applicationContext_dao.xml"/><importresource="spring/applicationContext_biz.xml"/><importresource="spring/applicationContext_ehcache.xml"/>我遇到的问题就是,ehcache在配置两个切面的时候报错:2013-01-0614:33:38Destroyingsingletonsinorg.springframework.beans.factory.support.DefaultListableBeanFactory@1aaf64d:definingbeans[dataSource,transcationManager,sqlSessionFactory,sqlSession,txAdvice,org.springframework.aop.config.internalAutoProxyCreator,allManagerMethod,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,jdbcTemplate,springDemoDao,userDao,userBiz,cacheManager,simpleCache,methodCacheInterceptor,methodCacheAfterAdvice,methodCachePointCut,methodCachePointCutAdvice];rootoffactoryhierarchy2013-01-0614:33:38Retrieveddependentbeansforbean'cacheManager':[simpleCache]2013-01-0614:33:38Retrieveddependentbeansforbean'simpleCache':[methodCacheAfterAdvice]2013-01-0614:33:38Retrieveddependentbeansforbean'methodCacheAfterAdvice':[methodCachePointCutAdvice]2013-01-0614:33:38Invokingdestroy()onbeanwithname'cacheManager'2013-01-0614:33:38ShuttingdownEHCacheCacheManager2013-01-0614:33:38Contextinitializationfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'dataSource'definedinclasspathresource[applicationContext.xml]:BeanPostProcessorbeforeinstantiationofbeanfailed;nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'methodCachePointCut'definedinclasspathresource[spring/applicationContext_ehcache.xml]:Cannotresolvereferencetobean'methodCacheInterceptor'whilesettingbeanproperty'advice';nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'methodCacheInterceptor'definedinclasspathresource[spring/applicationContext_ehcache.xml]:Initializationofbeanfailed;nestedexceptionisorg.springframework.beans.ConversionNotSupportedException:Failedtoconvertpropertyvalueoftype'$Proxy4implementingnet.sf.ehcache.terracotta.InternalEhcache,net.sf.ehcache.store.StoreListener,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised'torequiredtype'net.sf.ehcache.Cache'forproperty'cache';nestedexceptionisjava.lang.IllegalStateException:Cannotconvertvalueoftype[$Proxy4implementingnet.sf.ehcache.terracotta.InternalEhcache,net.sf.ehcache.store.StoreListener,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised]torequiredtype[net.sf.ehcache.Cache]forproperty'cache':nomatchingeditorsorconversionstrategyfound
解决方案六:
我试过删除一个切面的话项目是能够完全启动的,<!--配置一个简单的缓存工厂bean对象--><beanid="simpleCache"class="org.springframework.cache.ehcache.EhCacheFactoryBean"><propertyname="cacheManager"ref="cacheManager"/><!--使用缓存关联ehcache.xml中的缓存配置--><propertyname="cacheName"value="mobileCache"/></bean><!--参与缓存的切入点对象(切入点对象,确定何时何地调用拦截器)--><beanid="methodCachePointCut"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><!--配置缓存aop切面--><propertyname="advice"ref="methodCacheInterceptor"/><!--配置哪些方法参与缓存策略--><!--.表示符合任何单一字元
解决方案七:
+表示符合前一个字元一次或多次
解决方案八:
*表示符合前一个字元零次或多次
解决方案九:
Escape任何Regularexpression使用到的符号--><!--.*表示前面的前缀(包括包名)表示print方法--><propertyname="patterns"><list><!--<value>com.scxxs.dao.*get*</value><value>com.scxxs.dao.*find*</value><value>com.scxxs.dao.*query*</value>--><value>.*find.*</value></list></property></bean>像上面这种配置有两个删除其中一个都没问题。我还测试过缓存起作用没,当我删除后面那个after切面后项目正常启动且缓存起作用,请教各位大虾为了我两个切面都存在的时候就要报错,报错信息就是上面那种,搞不懂啊!!!!

时间: 2024-10-11 01:37:56

spring+ehcache时遇到的问题,配置2个切点就会出现问题,一个的时候没事,求大神看一下的相关文章

client发的请求接收返回信息时用send来接收,其余的由receive来接收,怎么改?求大神帮忙

问题描述 client发的请求接收返回信息时用send来接收,其余的由receive来接收,怎么改?求大神帮忙 sever的请求都友client的receive来接收,client发的请求接收返回信息时用send来接收,怎么改下?求大神帮忙,我只会大概写了下代码,菜鸟急需用! package test; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; impo

真机调试程序直接退出-Xcode真机调试时程序直接退出,显示运行错误,没有崩溃点。是什么原因?求大神指教???

问题描述 Xcode真机调试时程序直接退出,显示运行错误,没有崩溃点.是什么原因?求大神指教??? 解决方案 http://blog.csdn.net/smking/article/details/42879649 解决方案二: 你看看appdelate启动时候加一些断点等 还有最好clean build run来启动模拟器试试

tomcat-Myeclipce启动项目时后台日志,求大神看一下这是怎么回事!

问题描述 Myeclipce启动项目时后台日志,求大神看一下这是怎么回事! org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [cn.westcatr.nananiot.HomeController] for bean with name 'homeController' defined in file [F:WorkspacesMyEclipse Professional.me

server-求大神!! jsp访问之后就是介个样子,求大神看一下是我的环境什么地方配置错了

问题描述 求大神!! jsp访问之后就是介个样子,求大神看一下是我的环境什么地方配置错了 HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: org.hiberna

qt5-QT使用 mysql时出现问题,求大神看下

问题描述 QT使用 mysql时出现问题,求大神看下 我的系统:win7 64bit QT版本:QT5.4 vs2013的编译器 MySQL5.6安装正常 我是初学者,想试验一下mysql的使用,用main函数调用以下代码时出现: Starting C:QtQt5.4.1QTprojectsbuild-Mysql_test-Desktop_Qt_5_4_1_MSVC2013_64bit-DebugdebugMysql_test.exe... build error!haha C:QtQt5.4.

win7下载gz文件,解压时弹出文件损坏,重新下载了好几次都是这个情况,求大神啊

问题描述 win7下载gz文件,解压时弹出文件损坏,重新下载了好几次都是这个情况,求大神啊 win7下载gz文件,解压时弹出文件损坏,重新下载了好几次都是这个情况,求大神啊 解决方案 要么就是本身文件有损坏,或者你的网络环境不好,导致下载出错 解决方案二: 换个解压文件试试,或者用命令解压 解决方案三: 换一个解压工具吧,TCP协议是面向连接的可靠协议,使用他传输的数据是可靠的,所以一般不会是因为下载中出现的数据错误,还有一种可能就是服务器上这个文件本身就是损坏的 解决方案四: 确实是文件损坏了

java初学者编写代码时遇到一个小问题!求大神指导!!!

问题描述 代码如下:packageNumber;publicclassFrist{staticStrings1="你好";publicstaticvoidmain(String[]args){Strings2="Java";System.out.println(s1);System.out.println(s2);}}出错如下:C:UsersAdministrator>e:E:>cdtempE:Temp>javacFrist.javaE:Temp&

web xml-求大神看一下,我的struts2配置是否有问题

问题描述 求大神看一下,我的struts2配置是否有问题 为什么不能访问登陆界面,之前好好的 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchem

spring配置错误 求大神

问题描述 spring配置错误 求大神 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFac