7-1 AspectJ介紹及Pointcut注解應(yīng)用
AspectJ介紹及Pointcut注解應(yīng)用
1、@AspectJ的風(fēng)格類似純java注解的普通java類。
2、Spring可以使用AspectJ來做切入點(diǎn)解析。
3、AOP的運(yùn)行時(shí)仍舊是純的SpringAOP,對(duì)AspectJ的編譯器或者織入無依賴性。
Spring中配置@AspectJ
1、對(duì)@AspectJ支持可以使用XML或者Java注解類型的配置(@EnableAspectJAutoProxy使用AspectJ進(jìn)行自動(dòng)代理)
2、前提:確保AspectJ的aspectjweaver.jar庫包含在應(yīng)用程序(版本1.6.8或更高版本)的classpath中,以Spring4.0.5為基準(zhǔn)的,其他版本可能不一樣(可以根據(jù)具體情況查找Spring具體文檔)。
aspect注解的具體使用
1、@AspectJ切面使用@Aspect注解配置,擁有@Aspect的任何bean將被Spring自動(dòng)識(shí)別并應(yīng)用。
2、@Aspect注解的類可以有方法和字段,他們也可能包括切入點(diǎn)(pointcut),通知(Advice)和引入(introduction)聲明。
3、@Aspect注解是不能夠通過類路徑自動(dòng)檢測發(fā)現(xiàn)的,所以需要配合使用@Component注釋或者在xml配置bean(@Aspect注解的類配置在xml中)。
4、一個(gè)類中的@Aspect注解標(biāo)識(shí)它為一個(gè)切面,并且將自己從自動(dòng)代理中排出。
如何定義一個(gè)切入點(diǎn)
1、一個(gè)切入點(diǎn)通過一個(gè)普通的方法定義來提供,并且切入點(diǎn)表達(dá)式使用@Pointcut注解,方法返回類型必須為void
2、定義一個(gè)名為'anyOldTransfer',這個(gè)切入點(diǎn)將匹配任何名為“transfer”的方法的執(zhí)行。
切入點(diǎn)支持哪些定義方式
組合Pointcut
1、切入點(diǎn)表達(dá)式可以通過&&、||和!進(jìn)行組合,也可以通過名字引用切入點(diǎn)表達(dá)式。
2、通過組合,可以建立更加復(fù)雜的切入點(diǎn)表達(dá)式。
如何定義良好的pointcuts
1、AspectJ是編譯期的AOP
2、檢查代碼并匹配連接點(diǎn)與切入點(diǎn)的代價(jià)是昂貴的。
3、一個(gè)好的切入點(diǎn)應(yīng)該包括以下幾點(diǎn)
【a】選擇特定類型的連接點(diǎn),如:execution,get,set,call,handler。
【b】確定連接點(diǎn)范圍,如:within,withincode。
【c】匹配上下文信息,如:this,target,@annotation。

Spring入門篇
- 難度中級(jí)
- 時(shí)長 7小時(shí) 0分
- 人數(shù)268801
- 評(píng)分8.4
Spring是為解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的一個(gè)Java開源框架,應(yīng)用非常廣泛。業(yè)內(nèi)非常流行的SSH架構(gòu)中的其中一個(gè)"S"指的就是Spring。本門課程作為Spring的入門級(jí)課程,將結(jié)合實(shí)例為您帶來依賴注入、IOC和AOP的基本概念及用法,為后續(xù)高級(jí)課程的學(xué)習(xí)打下基礎(chǔ)。

曾混跡于企業(yè)應(yīng)用領(lǐng)域,后轉(zhuǎn)戰(zhàn)電商,現(xiàn)奮戰(zhàn)于互聯(lián)網(wǎng)教育行業(yè),轉(zhuǎn)眼間已匆匆數(shù)年,喜愛技術(shù)甚于自己,至今不悔。感天地之廣大,歲月之蹉跎,若能重來,仍代碼。
舉報(bào)