SpringBoot中Aop失效解决办法.pdfVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档