spring @Cacheable注解式缓存不起作用 失效原因总结

下一篇:很抱歉没有了

在spring中使用ehcache时出现了 @Cacheable不起作用的情况。

1.返回的结果bean对象必须 实现Serializable接口

public class UserEntity implements Serializable {

}

2.在同一个类中方法A内部调用有注解的方法B,方法B不走缓存的

原因就是上面说的,使用@Cacheable添加缓存实际上就是使用动态代理做的,在代理的方法前后做缓存的相应处理。这样一来,单独的去调方法B是有缓存的,但是如果调方法A,A里面再去调B方法,哪怕B方法配置了缓存,也是不会生效的

 解决方法:
1)、不使用注解的方式,直接取 Ehcache 的 CacheManger 对象,把需要缓存的数据放到里面,类似于使用 Map,缓存的逻辑自己控制
2)、把方法A和方法B放到两个不同的类里面,例如:如果两个方法都在service接口里,把方法B放到另一个service里面,这样A方法里调B方法,就可以使用B方法的缓存

来源://作者:/更新时间:2018-10-12
相关文章
评论:
验证码:
匿名评论:

最新文章

文章排行