真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何進(jìn)行@Aspect注解的詳細(xì)分析

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

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)黃州,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

spring中支持9種@Aspect注解的函數(shù),它們表示用不同的方式描述目標(biāo)類的連接點(diǎn),它們主要分別4種類型:

  • 方法切點(diǎn)函數(shù):通過描述目標(biāo)類信息定義連接點(diǎn)

  • 方法入?yún)⑶悬c(diǎn)函數(shù): 通過描述目標(biāo)類方法入?yún)⒌男畔⒍x連接點(diǎn)

  • 目標(biāo)類切點(diǎn)函數(shù):通過描述目標(biāo)類類型信息定義連接點(diǎn)

  • 代理類切點(diǎn)函數(shù):通過描述目標(biāo)類的代理類的信息定義連接點(diǎn)

下面我們看一下具體的切點(diǎn)函數(shù)的具體使用。

  • 函數(shù)入?yún)⒌耐ㄅ浞?/strong>

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

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

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

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

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

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

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

  • 邏輯運(yùn)算符

我們知道切點(diǎn)是由函數(shù)組成,切點(diǎn)與切點(diǎn)之間可以進(jìn)行邏輯運(yùn)算,這就組合成了復(fù)合切點(diǎn),下面我們看一下spring中支持的切點(diǎn)運(yùn)算符:

  • && 與操作符 也就是執(zhí)行切點(diǎn)的交集運(yùn)算,在spring中除了使用&&符號我們還可直接使用and關(guān)鍵字

  • || 或操作符 也就是執(zhí)行切點(diǎn)的并集運(yùn)算,同樣在spring中我們除了可以使用|| 符號外我們還可以使用or關(guān)鍵字

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

  • 不同的增強(qiáng)類型

  • @Before 

前置增強(qiáng),相當(dāng)于BeforeAdvice功能,該注解有兩個(gè)屬性它們分別是:

  • value: 用于定義切點(diǎn)

  • argNames: 因?yàn)闊o法通過Java反射獲取到方法的入?yún)⒚匀绻覀兿朐谶\(yùn)行期內(nèi),通過反射技術(shù)解析該切點(diǎn),就可以在此屬性中添加該方法的參數(shù)名,多個(gè)參數(shù)用逗號分隔

  • @AfterRetruning

后置增強(qiáng),相當(dāng)于AfterRetruningAdvice,該注解有4個(gè)屬性:

  • value: 同上

  • pointcut: 表示切點(diǎn)信息,和value屬性一樣,如果顯示的設(shè)置pointcut則會(huì)覆蓋value

  • returning: 將目標(biāo)對象方法的返回值綁定給增強(qiáng)的方法

  • argNames: 同上

  • @Around

環(huán)繞增強(qiáng),相當(dāng)于MethodInterceptor,該注解主要有2個(gè)屬性:

  • value: 同上

  • argNames: 同上

  • @AfterThrowing

拋出增強(qiáng),相當(dāng)于ThrowsAdvice,該注解有4個(gè)屬性:

  • value: 同上

  • pointcut: 同上

  • throwing: 將拋出的異常綁定到增強(qiáng)的方法中

  • argNames: 同上

  • @After

Final增強(qiáng),不管是拋出異常還是正常退出,該增強(qiáng)都會(huì)執(zhí)行,主要的功能是用于資源釋放,該注解也有2個(gè)屬性:

  • value:同上

  • argNames: 同上

  • @DeclareParents

引介增強(qiáng),相當(dāng)于IntroductionInterceptor,該注解有兩個(gè)屬性:

  • value: 同上

  • defaultImpl: 默認(rèn)的接口實(shí)現(xiàn)類

關(guān)于如何進(jìn)行@Aspect注解的詳細(xì)分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站名稱:如何進(jìn)行@Aspect注解的詳細(xì)分析
URL地址:http://weahome.cn/article/ggcheh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部