Spring AOP:After或AfterReturning将首先调用哪些建议

时间:2016-07-05 11:15:40

标签: spring aop spring-aop

假设我们在同一个关节点(业务功能)上应用了两个建议,一个是 After ,另一个是 AfterReturning ,那么关节点成功执行

,将首先调用>建议

2 个答案:

答案 0 :(得分:2)

调用同一联合点(核心业务相关模块)的不同类型的建议如下:

  

1.Around

     

2.Before之前和/或之后

     

3.Returning或AfterThrowing后

假设我们在同一个关节点上应用所有五种类型的建议,那么流程就像:

  
      
  1. 围绕类型的建议将被调用,周围类型建议的pjp.proceed()之前的代码将被执行,其中 pjp 是参考   变量 ProceedingJoinPoint 界面

  2.   
  3. 之前类型建议将被调用并完全执行。

  4.   
  5. 联合点内的代码将完全执行。

  6.   
  7. 如果关节点成功执行,则会执行 类型建议pjp.proceed()之后的代码,否则请跳过此步骤并转到   如果它已修改返回值,则此新返回值将   受以下建议方法调用。

  8.   
  9. 类型后的建议将被调用并完全执行。

  10.   如果关节点成功执行,
  11. AfterReturning 类型建议将被完全调用并执行,否则如果关节点抛出任何错误   然后 AfterThrowing 类型的建议将被调用并完全执行。

  12.   

答案 1 :(得分:0)

不是重复回答,而是指向描述排序的Spring AOP的链接。