3 24 切面發布 環繞通知

2022-07-12 05:24:10 字數 922 閱讀 3667

戴著假髮的程式設計師出品  抖音id:戴著假髮的程式設計師歡迎關注

所謂環繞通知就是在目標方法的前後可以通知增強,正因為這樣的情況,所以環繞通知可以阻止方法的執行,或者修改方法的返回值。

環繞通知也可以傳入乙個引數proceedingjoinpoint,proceedingjoinpoint 是joinpoint的乙個子類,增強了一些方法,我們可以通過proceedingjoinpoint 的proceed()呼叫被增強方法。

看案例:

修改aspect類,在其中增加乙個環繞通知:

1

/**2

* @author

戴著假髮的程式設計師3*

4* @description5*/

6@component

7@aspect

8public

class

dkaspect

1112

/**13

* 環繞通知,傳入引數proceedingjoinpoint

14*

*/15 @around("pointcut1()")

16public

object around(proceedingjoinpoint joinpoint) catch

(throwable throwable)

28 system.out.println("--環繞通知結束--");

29return

retval;30}

31 }

測試:

注意,如果目標方法出現異常程式中斷,環繞通知就會只執行前半部分,後半部分就會執行。

環繞通知使用

檔案結構 配置檔案 logger類 spring框架為我們提供了乙個介面 proceedingjoinpoint。該介面有乙個方法proceed 此方法就相當於明確呼叫切入點方法。該介面可以作為環繞通知的方法引數,在程式執行時,spring框架會為我們提供該介面的實現類供我們使用。spring中的環...

返回通知 異常通知 環繞通知

返回通知 是在方法正常結束之後執行的通知,可以訪問方法返回值。使用 afterreturning注釋,我們還可以在注釋裡面指定乙個返回值的名字,然後再方法中使用它。當方法出異常,就不會有這個通知了 異常通知 是在方法出現異常後執行的通知,可以訪問異常物件 使用 afterthrowing注釋,我們還...

Spring 的環繞通知

spring 的環繞通知和前置通知,後置通知有著很大的區別,主要有兩個重要的區別 1 目標方法的呼叫由環繞通知決定,即你可以決定是否呼叫目標方法,而前置和後置通知是不能決定的,他們只是在方法的呼叫前後執行通知而已,即目標方法肯定是要執行的。2 環繞通知可以控制返回物件,即你可以返回乙個與目標物件完全...