spring AOP 面向切面

AOP:面向切面編程,通過(guò)預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。AOP是OOP(面向?qū)ο缶幊蹋┑难永m(xù)
AOP采取橫向抽取機(jī)制,取代了傳統(tǒng)縱向繼承體系重復(fù)性代碼
經(jīng)典應(yīng)用:事務(wù)管理、性能監(jiān)視、安全檢查、緩存 、日志等

AOP實(shí)現(xiàn)原理

  • aop底層將采用代理機(jī)制進(jìn)行實(shí)現(xiàn)。
  • 接口 + 實(shí)現(xiàn)類 :spring采用 jdk 的動(dòng)態(tài)代理Proxy。
  • 實(shí)現(xiàn)類:spring 采用 cglib字節(jié)碼增強(qiáng)。

核心知識(shí)點(diǎn)
1.target:目標(biāo)類,需要被代理的類。
2.Joinpoint(連接點(diǎn)):所謂連接點(diǎn)是指那些可能被攔截到的方法。
3.PointCut 切入點(diǎn):已經(jīng)被增強(qiáng)的連接點(diǎn)。
4.advice 通知/增強(qiáng),增強(qiáng)代碼。
5.Weaving(織入):是指把增強(qiáng)advice應(yīng)用到目標(biāo)對(duì)象target來(lái)創(chuàng)建新的代理對(duì)象proxy的過(guò)程.
6.proxy 代理類

  1. Aspect(切面): 是切入點(diǎn)pointcut和通知advice的結(jié)合

一個(gè)線是一個(gè)特殊的面。
一個(gè)切入點(diǎn)和一個(gè)通知,組成成一個(gè)特殊的面。

通過(guò)Joinpoint.getSignature();獲取攔截到的方法簽名MethodSignature
MethodSignature.getMethod() 找到對(duì)應(yīng)執(zhí)行方法
如需使用注解@aspect 必須在xml中進(jìn)行配置
<aop:aspectj-autoproxy />

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

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

  • AOP全稱Aspect Oriented Programming。在OOP(面向?qū)ο蟪绦蛟O(shè)計(jì))中,正是這種分...
    tuacy閱讀 383評(píng)論 0 0
  • AOP AOP(Aspect Oriented Programming),即面向切面編程,可以說(shuō)是OOP(Obje...
    Scorpio_cc閱讀 1,532評(píng)論 0 2
  • 基本知識(shí) 其實(shí), 接觸了這么久的 AOP, 我感覺(jué), AOP 給人難以理解的一個(gè)關(guān)鍵點(diǎn)是它的概念比較多, 而且坑爹...
    永順閱讀 8,658評(píng)論 5 114
  • 自從我們遇到矛盾開(kāi)始,我再也不看那些愛(ài)情故事的文章或是與婚姻生活有關(guān)系的雞湯。因?yàn)槲野l(fā)現(xiàn)那些只是某些人在撒狗糧,而...
    蝸牛慢吞吞簡(jiǎn)愛(ài)閱讀 162評(píng)論 0 0
  • 1、挑戰(zhàn)自己的恐懼 好吧,對(duì)多數(shù)人藍(lán)小雨來(lái)說(shuō),,恐懼都是一個(gè)難以戰(zhàn)勝的敵人。正因?yàn)榇耍銘?yīng)該主動(dòng)挑戰(zhàn)它,威廉·詹寧...
    比較厲害的小馬兒閱讀 172評(píng)論 0 0

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