@Cacheable注解缓存内部调用失效的解决办法

解决@Cacheable注解缓存方法内部调用失效的办法

因为Spring Cache基于切面,所以内部方法调用由于不会调用切面,导致缓存不生效

处理:

1、类自我注入,使用@lazy@Autowired注解实现自我注入,然后使用时用注解的实例代替this调用方法。

2、暴露Aop代理到ThreadLocal支持,在类之前加@EnableAspectJAutoProxy(exposeProxy = true),调用方法时使用((XxxService) AopContext.currentProxy()).method()调用方法,也就是楼上某位同学提到的。

推荐阅读更多精彩内容