@Cacheable注解缓存内部调用失效的解决办法
2019-07-24 本文已影响0人
真的不想起
解决@Cacheable注解缓存方法内部调用失效的办法
因为Spring Cache基于切面,所以内部方法调用由于不会调用切面,导致缓存不生效
处理:
1、类自我注入,使用@lazy和@Autowired注解实现自我注入,然后使用时用注解的实例代替this调用方法。
2、暴露Aop代理到ThreadLocal支持,在类之前加@EnableAspectJAutoProxy(exposeProxy = true),调用方法时使用((XxxService) AopContext.currentProxy()).method()调用方法,也就是楼上某位同学提到的。