Spring(一)

1.AOP概述
AOP為Aspect Oriented Programming的縮寫, 意為:面向切面編程, 通過預(yù)編譯方式和運(yùn)行期動態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù). AOP是OOP的延續(xù), 是函數(shù)式編程的一種衍生范型. 利用AOP可以對業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行隔離, 從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低, 提高程序的可重用性, 同時(shí)提高了開發(fā)的效率。

  1. AOP的作用及優(yōu)勢
    作用:
    在程序運(yùn)行期間,不修改任何相關(guān)源碼對已有方法進(jìn)行增強(qiáng)。
    優(yōu)勢:
    減少重復(fù)代碼、提高開發(fā)效率、維護(hù)方便

  2. AOP相關(guān)術(shù)語
    Joinpoint(連接點(diǎn)):
    所謂連接點(diǎn)是指那些被攔截到的點(diǎn)。在spring中,這些點(diǎn)指的是方法,因?yàn)閟pring只支持方法類型的連接點(diǎn)。
    ---就是根據(jù)規(guī)則,可以指定攔截的方法,我們將每一個(gè)被攔截的方法稱為連接點(diǎn)。

Pointcut(切入點(diǎn)):
--所謂的切入點(diǎn),就是攔截方法設(shè)置的規(guī)則
所謂切入點(diǎn)是指我們要對哪些Joinpoint進(jìn)行攔截的定義。

Advice(通知/增強(qiáng)):
--就是可以設(shè)置在方法之前攔截或者方法執(zhí)行之后攔截或者方法出異常后攔截,或者方法之前和之后都攔截。我們將這些攔截場景稱為通知

    所謂通知是指攔截到Joinpoint之后所要做的事情就是通知。
    通知的類型:前置通知,后置通知,異常通知,最終通知,環(huán)繞通知。

Aspect(切面):
--所謂的切面就是我們的攔截處理類。
是切入點(diǎn)和通知的結(jié)合。
Weaving(織入):
-把切面加入到對象,并創(chuàng)建出代理對象的過程。(該過程由Spring來完成)

  1. Spring的AOP
    Spring通過動態(tài)代理模式的實(shí)現(xiàn)后,我們可以定義AOP其實(shí)就是用于通過規(guī)則設(shè)置來攔截方法,加入可以統(tǒng)一處理的代碼。

  2. 基于XML配置AOP的標(biāo)簽
    1、 <aop:config>
    作用:
    用于聲明開始aop的配置
    2、 <aop:aspect>
    作用:
    用于配置切面。
    屬性:
    id:給切面提供一個(gè)唯一標(biāo)識。
    ref:引用配置好的通知類bean的id。
    3、 <aop:pointcut>
    作用:
    用于配置切入點(diǎn)表達(dá)式
    屬性:
    expression:用于定義切入點(diǎn)表達(dá)式。
    id:用于給切入點(diǎn)表達(dá)式提供一個(gè)唯一標(biāo)識。
    4、 <aop:before>
    作用:
    用于配置前置通知
    屬性:
    method:指定通知中方法的名稱。
    pointct:定義切入點(diǎn)表達(dá)式
    pointcut-ref:指定切入點(diǎn)表達(dá)式的引用
    5、 <aop:after-returning>
    作用:
    用于配置后置通知,如果出了異常就一定不會調(diào)用切面的方法
    屬性:
    method:指定通知中方法的名稱。
    pointct:定義切入點(diǎn)表達(dá)式
    pointcut-ref:指定切入點(diǎn)表達(dá)式的引用
    6、 <aop:after-throwing>
    作用:
    用于配置異常通知,只有出了異常才會調(diào)用切面對應(yīng)的方法
    屬性:
    method:指定通知中方法的名稱。
    pointct:定義切入點(diǎn)表達(dá)式
    pointcut-ref:指定切入點(diǎn)表達(dá)式的引用
    7、 <aop:after>
    作用:
    用于配置最終通知,不管出不出異常,調(diào)用的切面的方法
    屬性:
    method:指定通知中方法的名稱。
    pointct:定義切入點(diǎn)表達(dá)式
    pointcut-ref:指定切入點(diǎn)表達(dá)式的引用
    8、 <aop:around>
    作用:
    用于配置環(huán)繞通知
    屬性:
    method:指定通知中方法的名稱。
    pointct:定義切入點(diǎn)表達(dá)式
    pointcut-ref:指定切入點(diǎn)表達(dá)式的引用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容