欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-07 21:41:22
1.类注解类上加注解,如:@EnableAspectJAutoProxy ( proxyTargetClass = true , exposeProxy = true )public class AbcServiceImpl implements AbcService{}2.方法内调用方式变化原:this.getCache();改为:AbcServiceImpl currentProxy = (AbcServiceImpl) AopContext.currentPr...

1.类注解

类上加注解,如:

@EnableAspectJAutoProxy ( proxyTargetClass = true , exposeProxy = true )

public class AbcServiceImpl implements AbcService{}

2.方法内调用方式变化

原:

this.getCache();

改为:

AbcServiceImpl currentProxy = (AbcServiceImpl) AopContext.currentProxy();

currentProxy.getCache();

3. 原理基本概括

①AOP无法代理内部this调用的方法,需要自己重新生成代理走缓存->AopContext.currentProxy(),单独使用无法找到代理对象,此时进行②;

②需要暴露当前代理->@EnableAspectJAutoProxy ( proxyTargetClass = true , exposeProxy = true )

本文地址:https://blog.csdn.net/u012725623/article/details/107669209

相关标签: 缓存 java

上一篇:

下一篇: