91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行@Aspect注解的詳細分析

發布時間:2021-12-08 15:50:34 來源:億速云 閱讀:135 作者:柒染 欄目:大數據

這篇文章給大家介紹如何進行@Aspect注解的詳細分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

spring中支持9種@Aspect注解的函數,它們表示用不同的方式描述目標類的連接點,它們主要分別4種類型:

  • 方法切點函數:通過描述目標類信息定義連接點

  • 方法入參切點函數: 通過描述目標類方法入參的信息定義連接點

  • 目標類切點函數:通過描述目標類類型信息定義連接點

  • 代理類切點函數:通過描述目標類的代理類的信息定義連接點

下面我們看一下具體的切點函數的具體使用。

  • 函數入參的通配符

  • * 匹配任意字符,但它可能匹配上下文中的一個元素

  • .. 匹配任意字符,可以匹配上下文中的多個元素

  • + 表示按類型匹配指定類的所有類,必須跟在類名后面,也就是會匹配繼承或者擴展指定類的所有類,包括指定類

@Aspect注解按是否支持通配付符及支持程度上分可以分為3類:

  • 支持所有通配符:excution()、within()、

  • 支持+通配符:args()、this()、target()

  • 不支持通配符:@args()、@within()、@target()、@annotation()

  • 邏輯運算符

我們知道切點是由函數組成,切點與切點之間可以進行邏輯運算,這就組合成了復合切點,下面我們看一下spring中支持的切點運算符:

  • && 與操作符 也就是執行切點的交集運算,在spring中除了使用&&符號我們還可直接使用and關鍵字

  • || 或操作符 也就是執行切點的并集運算,同樣在spring中我們除了可以使用|| 符號外我們還可以使用or關鍵字

  • !非操作符 也就是執行反集運算,同樣在spring中我們除了可以使用!符號外我們還可以使用not關鍵字

  • 不同的增強類型

  • @Before 

前置增強,相當于BeforeAdvice功能,該注解有兩個屬性它們分別是:

  • value: 用于定義切點

  • argNames: 因為無法通過Java反射獲取到方法的入參名,所以如果我們想在運行期內,通過反射技術解析該切點,就可以在此屬性中添加該方法的參數名,多個參數用逗號分隔

  • @AfterRetruning

后置增強,相當于AfterRetruningAdvice,該注解有4個屬性:

  • value: 同上

  • pointcut: 表示切點信息,和value屬性一樣,如果顯示的設置pointcut則會覆蓋value

  • returning: 將目標對象方法的返回值綁定給增強的方法

  • argNames: 同上

  • @Around

環繞增強,相當于MethodInterceptor,該注解主要有2個屬性:

  • value: 同上

  • argNames: 同上

  • @AfterThrowing

拋出增強,相當于ThrowsAdvice,該注解有4個屬性:

  • value: 同上

  • pointcut: 同上

  • throwing: 將拋出的異常綁定到增強的方法中

  • argNames: 同上

  • @After

Final增強,不管是拋出異常還是正常退出,該增強都會執行,主要的功能是用于資源釋放,該注解也有2個屬性:

  • value:同上

  • argNames: 同上

  • @DeclareParents

引介增強,相當于IntroductionInterceptor,該注解有兩個屬性:

  • value: 同上

  • defaultImpl: 默認的接口實現類

關于如何進行@Aspect注解的詳細分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新竹市| 洞口县| 万年县| 恭城| 旬阳县| 嵩明县| 榕江县| 荥阳市| 铁岭市| 高清| 闽侯县| 新营市| 禹州市| 东宁县| 广水市| 大兴区| 津市市| 英山县| 错那县| 定襄县| 镇江市| 浏阳市| 翁源县| 平利县| 蓬安县| 纳雍县| 横山县| 三亚市| 泽普县| 安龙县| 五河县| 蚌埠市| 沐川县| 宁波市| 天柱县| 依安县| 盐津县| 东台市| 嵩明县| 吴忠市| 遂川县|