论坛首页 Java企业应用论坛

spring cache的缺陷

浏览 9283 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-04  

spring cache功能确实是带来很多方便,但是他的一些缺陷让人头疼。

 

1、他的cache功能是基于aop的,所以当内部调用方法的时候就不会调用cache方法。

 

这个也不能说是spring 的问题,总之你需要把内部互相调用的方法分开写然后调用接口的方式调用。

 

2、key的问题

在清除缓存的时候,你没办法同时清除多个缓存的key

例如:

@cache(value="user")

public User getById(Integer uid);

 

@cache(value="user")

public User getByName(String name);

 

当你需要清除的时候,你无法指定多个缓存块。

   发表时间:2012-04-04  
是有这种问题,比如用户登录后需要添加如下缓存:
1、username  到  uuid
2、email   到   uuid
3、uuid  到 用户对象

简单的这个一个@Cache方法搞不定,需要三个
0 请登录后投票
   发表时间:2012-05-12   最后修改:2012-05-12

可以同时清除多个缓存key

@Caching
(evict={@CacheEvict(value="v1",key="'k1"),@CacheEvict(value="v2",key="k2"))
 

源代码里有

0 请登录后投票
   发表时间:2012-05-12   最后修改:2012-05-12
cowboy_bebop 写道

 

可以同时清除多个缓存key

 

@Caching
(evict={@CacheEvict(value="v1",key="'k1"),@CacheEvict(value="v2",key="k2"))
 

源代码里有

谢谢,这样的话 spring cache 就完美了,还准备重写实现的

0 请登录后投票
   发表时间:2012-05-12  
spring cache 还少一个 一对多的缓存管理
例如有一个缓存存放 list<User>

现在你执行了一个 update(user)的方法,你一定不希望清除整个缓存而想替换掉update的元素
0 请登录后投票
   发表时间:2012-05-14  
aa87963014 写道
spring cache 还少一个 一对多的缓存管理
例如有一个缓存存放 list<User>

现在你执行了一个 update(user)的方法,你一定不希望清除整个缓存而想替换掉update的元素



是可以实现同时删除多个缓存和实时更新List的数据的,请看
http://www.iteye.com/topic/1123669
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics