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
顶
踩
相关文章:
- lass org.springframework.beans.BeanWrapperImpl can
- 解决 org.mybatis.spring.MyBatisSystemException: ne
- 解决 WebSocketHandlerMapping#0': Cannot resolve r
- java spring后台如何解决跨域请求 No 'Access-Contro
- spring 配置事务不起作用原因 service层事务无效
- spring mvc 获取HttpServletRequest HttpServletRespo
- 解决 Caused by: org.springframework.beans.BeanInst
- springmvc csv文件导出_csv文件下载_csv文件生成
- springmvc 后台参数校验 使用用注解方式及国际化的写
- 解决 org.springframework.beans.factory.BeanNotOfRe