【ⓈSpring & Spring MVC】Spring AOP有哪些通知类型,它们的执行顺序是怎样的?

通知类型

在基于Spring AOP编程的过程中,基于AspectJ框架标准,spring中定义了五种类型的通知,它们分别是:

  • 前置通知 (@Before) 。
  • 返回通知 (@AfterReturning) 。
  • 异常通知 (@AfterThrowing) 。
  • 后置通知 (@After)。
  • 环绕通知 (@Around) :(优先级最高)

通知执行顺序

将上面的所有通知类型写入同一个切面中,它的执行顺序为:

注:Spring版本为5.2.7.RELEASE---SpringBoot版本为2.2.8.RELEASE时 AOP执行顺序发生了改变。

Spring版本为5.2.7.RELEASE之前:

正常情况:
@Around 环绕通知前
@Before前置通知
result:5
@Around 环绕通知后
@After后置通知
@AfterReturning返回后通知
 
异常情况:
@Around 环绕通知前
@Before前置通知
@After后置通知
@AfterThrowing异常通知

Spring版本为5.2.7.RELEASE之后:

正常情况:
@Around 环绕通知前
@Before前置通知
result:5
@AfterReturning返回后通知
@After后置通知
@Around 环绕通知后
 
异常情况:
@Around 环绕通知前
@Before前置通知
@AfterThrowing异常通知
@After后置通知

 

参考:

 

posted @ 2023-03-25 20:43  残城碎梦  阅读(235)  评论(0编辑  收藏  举报