中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何進行@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

肥城市| 肥东县| 沾益县| 石嘴山市| 鄂州市| 广南县| 望谟县| 邹平县| 滦南县| 德庆县| 元朗区| 建阳市| 龙陵县| 瑞丽市| 车险| 云浮市| 安塞县| 伊通| 屏东县| 手机| 西安市| 定西市| 区。| 若尔盖县| 西乡县| 南部县| 兰考县| 乾安县| 额济纳旗| 游戏| 揭东县| 舒城县| 墨脱县| 通许县| 阳曲县| 开平市| 长春市| 安顺市| 紫云| 苏州市| 武穴市|