如何解决SpringAop内部调用时不经过代理类的问题
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,如何解决SpringAop内部调用时不经过代理类的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringAopAOP代理织入
千家信息网最后更新 2026年11月04日如何解决SpringAop内部调用时不经过代理类的问题
如何解决SpringAop内部调用时不经过代理类的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
SpringAop
AOP代理织入时期
编译时织入 - aspectj框架
类加载时织入 - aspectj框架
运行时织入 - spring-aop
动态代理方式
JDK - 被代理对象必须需要实现接口
CGLIB - 采用继承被代理对象方式实现代理功能
解决SpringAop内部调用时不经过代理类(而是通过this)
方案一
通过编译时织入或者类加载时织入代码
方案二
通过当前代理类调用目标方法
getOne()方法中直接调用getAll()时是通过this对象,这时候getAll()方法上的@AopLog就不会被AOP扫描到
@Service@Slf4jpublic class ServiceImpl implements IService { @Override @AopLog("value=getOne") public void getOne() { log.info("getOne running"); // 直接调用getAll()方法 = this.getAll() getAll(); } @Override @AopLog("value=getAll") public void getAll() { log.info("getAll running"); }}修改getOne()方法,通过AopContext.currentProxy()方法获取当前代理类,通过代理类来调用getAll()方法,这时候就是通过代理类调用的
@Service@Slf4jpublic class ServiceImpl implements IService { @Override @AopLog("value=getOne") public void getOne() { log.info("getOne running"); // 获取当前代理类,通过代理类来调用getAll()方法 ((IService) AopContext.currentProxy()).getAll(); } @Override @AopLog("value=getAll") public void getAll() { log.info("getAll running"); } @AopLog("value=getById") private void getById() { log.info("getById running"); }}this使得SpringAop失效之谜
问题描述
类Demo被AOP扫描到,其中有A和B两个方法,A方法中调用了B方法,执行A方法时,B方法的代理没有生效
问题剖析
我们知道AOP底层使用JDK动态代理和cglib动态代理想结合,通过判断去创建对应的代理对象。
而不管是那种方法,最终执行完代理后,都会执行目标方法:method.invoke(target,agrs)-->传入目标对象
所以执行A方法的代理后,执行A的目标方法,此时执行的对象是目标对象,所以目标对象执行A方法是A中隐藏的this
指的就是目标对象,即执行B方法的不再是代理对象而是目标对象,故B方法不会被代理
关于如何解决SpringAop内部调用时不经过代理类的问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
代理
方法
对象
目标
问题
动态
就是
方式
方案
更多
框架
而是
帮助
编译
解答
易行
简单易行
两个
代码
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
华服互联网科技怎么样
云信互联网科技有限公司
互联网科技工作委员会毛军
A股互联网金融科技公司
互联网最新的科技
互联网下的科技发展
金融科技 互联网金融
互联网科技股票
智慧科技互联网
万达互联网科技
互联网科技英文翻译
佰商互联网科技有限公司
居家互联网科技有限公司
恒生科技互联网指数分析
湖南诚度互联网科技有限公司
成都互联网科技公司工作好不好
工业互联网山东科技大学
中国新注册互联网科技
科技和互联网行业的特点
A股互联网金融科技公司
互联网科技资迅
致聘互联网科技
互联网科技公司介绍
互联网为啥属于高科技
科技类公司包括互联网吗
互联网公司黑科技创始人
山东子淼互联网科技有限公司
九思连强互联网电子科技有限公司
现代科技的标志之一的互联网