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 )