首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

使用Spring3.1 Cache注解+EHCache遇到的有关问题

2012-10-11 
使用Spring3.1 Cache注解+EHCache遇到的问题关于Spring3.1 Cache注解的介绍请参看http://hanqunfeng.iteye

使用Spring3.1 Cache注解+EHCache遇到的问题

关于Spring3.1 Cache注解的介绍请参看http://hanqunfeng.iteye.com/blog/1158824

?

这里只说一下遇到的问题,web应用,session超时为30分钟,使用Cache注解+EHCache,如下:

?

?

结果,在登录系统后,如果超过5分钟不访问系统,则会出现异常,

按照这样配置,我原以为,如果5分钟之内不访问应用,则缓存会失效,那么spring就会重新执行原先被缓存的方法,但实际上,方法并没有被重新执行,而是返回了null,貌似spring依旧是从缓存中查找,并且找到了key,只不过value已经是null了。

?

这样就会导致系统出现空指针异常,况且session也尚未超时,

但就算是将闲置时间设置为30分钟以上,用户在下次登录时一样会出现异常,但是第二次登录就又会正常,然后周而复始,貌似,只有当第一次取到null后,spring才会重新执行方法。

?

感觉上,好像ehcache清除缓存后,spring并不知道,因为key依旧可以在spring的cache中找到,但是通过key取值时,spring会从ehcache中查找,由于ehcache已经清除了缓存,所以返回值一定是null,而spring也把这个null当成了被缓存的value返回给系统。

?

使用spring自带的缓存机制没有遇到该问题。

?

热点排行