Spring AOP 學(xué)習(xí)筆記
Spring AOP 學(xué)習(xí)筆記通知(Advice):橫切操作時(shí)具體的操作。
切入點(diǎn)(Pointcut):描述什么時(shí)候需要進(jìn)行橫切操作,即在哪些地方需要加入通知,但是切入點(diǎn)不關(guān)心具體的通知是什么。
通知者(Advisor):由于通知者是通過切入點(diǎn)來創(chuàng)建的(切入點(diǎn)作為創(chuàng)建一個(gè)通知者實(shí)例時(shí)的參數(shù)),切入點(diǎn)可以對目標(biāo)類和目標(biāo)方法進(jìn)行詳細(xì)的描述,所以通知者告訴代理哪些類的哪些方法需要進(jìn)行橫切操作,從而對需要實(shí)現(xiàn)橫切的方法進(jìn)行靈活的定制。我把通知者理解為切入點(diǎn)和通知的綁定(通知作為創(chuàng)建通知者實(shí)例時(shí)的另一個(gè)參數(shù)),它描述了哪些類的哪些方法需要進(jìn)行哪些橫切操作(即哪個(gè)通知)。
再說說代理,代理的作用就是透明的為我們提供獲得了通知的目標(biāo)類(具體的使用方法看一下例子就明白了,非常簡單)。這個(gè)目標(biāo)類可以是我們自己寫的任何類或者其他第三方類。我們在調(diào)用通過代理得到的目標(biāo)類中的方法時(shí)就會觸發(fā)某個(gè)通知,從而完成橫切操作。
最后是我總結(jié)的實(shí)現(xiàn)橫切的一般步驟
簡單的切入:
1,創(chuàng)建某個(gè)通知的實(shí)例(spring提供五種通知)
2,創(chuàng)建代理的的實(shí)例
3,將通知加入代理
4,通過代理獲取目標(biāo)類實(shí)例
5,調(diào)用目標(biāo)類的方法。
可對需要橫切的方法進(jìn)行具體定制的切入:
1,創(chuàng)建切入點(diǎn)實(shí)例(Spring提供了七種可對目標(biāo)類和目標(biāo)方法進(jìn)行定制的切入點(diǎn)實(shí)現(xiàn))
2,通過切入點(diǎn)和通知?jiǎng)?chuàng)建通知者實(shí)例
3,將通知者加入代理
4,通過代理獲取目標(biāo)類實(shí)例
5,調(diào)用目標(biāo)類的方法。