浏览 9283 次
锁定老帖子 主题:spring cache的缺陷
精华帖 (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);
当你需要清除的时候,你无法指定多个缓存块。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-04-04
是有这种问题,比如用户登录后需要添加如下缓存:
1、username 到 uuid 2、email 到 uuid 3、uuid 到 用户对象 简单的这个一个@Cache方法搞不定,需要三个 |
|
返回顶楼 | |
发表时间:2012-05-12
最后修改:2012-05-12
可以同时清除多个缓存key
@Caching (evict={@CacheEvict(value="v1",key="'k1"),@CacheEvict(value="v2",key="k2")) 源代码里有 |
|
返回顶楼 | |
发表时间:2012-05-12
最后修改:2012-05-12
cowboy_bebop 写道
可以同时清除多个缓存key
@Caching (evict={@CacheEvict(value="v1",key="'k1"),@CacheEvict(value="v2",key="k2")) 源代码里有 谢谢,这样的话 spring cache 就完美了,还准备重写实现的 |
|
返回顶楼 | |
发表时间:2012-05-12
spring cache 还少一个 一对多的缓存管理
例如有一个缓存存放 list<User> 现在你执行了一个 update(user)的方法,你一定不希望清除整个缓存而想替换掉update的元素 |
|
返回顶楼 | |
发表时间:2012-05-14
aa87963014 写道 spring cache 还少一个 一对多的缓存管理
例如有一个缓存存放 list<User> 现在你执行了一个 update(user)的方法,你一定不希望清除整个缓存而想替换掉update的元素 是可以实现同时删除多个缓存和实时更新List的数据的,请看 http://www.iteye.com/topic/1123669 |
|
返回顶楼 | |