- 65
- 0
- 约小于1千字
- 约 1页
- 2023-06-11 发布于上海
- 举报
SpringBoot中Aop失效解决办法
在springboot中,只要正确定义了切⾯,在外部service调⽤相关⽅法时就会进代理类的⽅法。
但是如果是当前service中的多个⽅法互相调⽤就只有最外层的⽅法⾛切⾯⽅法,
例如,LogService 有两个⽅法A()和B(),A调⽤了B,则外部service调⽤A时不会⾛B相关的切⾯⽅法。
原因⽹上已经说得已经很多了,和aop原理相关,⼤体就是外部直接调⽤logService.B()时这个logService对象是个代理对象,相关⽅法也
是aop包装过的。⽽logService.A()中调⽤的B(),是原装的B()。
解决的办法也很简单,思路就是调⽤logService的代理对象的B()⽅法
1.
在A()调⽤B()时,使⽤类似 applicationContext.getBean() 的⽅法获取当前service的代理对象
applicationContext.getBean(LogService.class).B()
2.
直接⽤@Autowired在当前service⾥声明⼀个⾃⼰类型的属性
@Autowired private LogService logService;
这个对象就是代理对象
3.
使⽤ AopContext.curren
您可能关注的文档
最近下载
- 儿童抽动障碍共患注意缺陷多动障碍诊断与治疗专家共识(2025).pptx VIP
- 中金资产配置手册(全球资产100年).docx
- 新四年级上册语文《期末真题测试卷》(共7套)(1).pdf VIP
- (高清版)DB43∕T 2136-2021 高速公路车辆救援服务与管理规范.pdf VIP
- 标准图集-内蒙12J9_1-室外工程.pdf VIP
- 2026年安全员《A证》考试题库及答案(推荐).docx VIP
- 六年级体育与健康上册全册教案.doc VIP
- 外研版2026-2027学年七年级英语上册教学工作计划(及进度表).docx
- Razer雷蛇巴塞利斯蛇V3专业版(RZ01-04620)中文手册.pdf
- 2026年贵州省中考数学试卷(含答案详解)原版.pdf
原创力文档

文档评论(0)