Skip to content
目录概览

Spring通知有哪些类型?

在AOP术语中,切面的工作被称为通知,实际上是程序执行时要通过SpringAOP框架触发的代码段。

Spring切面可以应用5种类型的通知:

  1. 前置通知(Before):在目标方法被调用之前调用通知功能;
  2. 后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;
  3. 返回通知(After-returning ):在目标方法成功执行之后调用通知;
  4. 异常通知(After-throwing):在目标方法抛出异常后调用通知;
  5. 环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为。

同一个aspect,不同advice的执行顺序:

  • 没有异常情况下的执行顺序:
    • around before advice
    • before advice
    • target method 执行
    • around after advice
    • after advice
    • afterReturning
  • 有异常情况下的执行顺序:
    • around before advice
    • before advice
    • target method 执行
    • around after advice
    • after advice
    • afterThrowing:异常发生
    • java.lang.RuntimeException: 异常发生