Spring通知(Advice)有哪些类型?

2022-11-29 09:15:53 浏览数 (2)

(1)前置通知(Before Advice):在连接点(Join point)之前执行的通知。

(2)后置通知(After Advice):当连接点退出的时候执行的通知(不论是正常返回还是异常退出)。 

(3)环绕通知(Around Advice):包围一个连接点的通知,这是最强大的一种通知类型。 环绕通知可以在方法调用前后完成自定义的行为。它也可以选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行。

(4)返回后通知(AfterReturning Advice):在连接点正常完成后执行的通知(如果连接点抛出异常,则不执行)

(5)抛出异常后通知(AfterThrowing advice):在方法抛出异常退出时执行的通知

同一个Aspect,不同advice的执行顺序: (1)没有异常情况下的执行顺序: around before advice before advice target method 执行 around after advice after advice afterReturning (2)有异常情况下的执行顺序: around before advice before advice target method 执行 around after advice after advice afterThrowing java.lang.RuntimeException: 异常发生 

0 人点赞