如何理解AOP中的連接點(diǎn)(Joinpoint)电禀、切點(diǎn)(Pointcut)幢码、增強(qiáng)(Advice)、引介(Introduction)尖飞、織入(Weaving)症副、切面(Aspect)這些概念店雅?

a. 連接點(diǎn)(Joinpoint):程序執(zhí)行的某個(gè)特定位置(如:某個(gè)方法調(diào)用前、調(diào)用后贞铣,方法拋出異常后)闹啦。一個(gè)類(lèi)或一段程序代碼擁有一些具有邊界性質(zhì)的特定點(diǎn),這些代碼中的特定點(diǎn)就是連接點(diǎn)辕坝。Spring僅支持方法的連接點(diǎn)窍奋。
b. 切點(diǎn)(Pointcut):如果連接點(diǎn)相當(dāng)于數(shù)據(jù)中的記錄,那么切點(diǎn)相當(dāng)于查詢條件酱畅,一個(gè)切點(diǎn)可以匹配多個(gè)連接點(diǎn)琳袄。Spring AOP的規(guī)則解析引擎負(fù)責(zé)解析切點(diǎn)所設(shè)定的查詢條件,找到對(duì)應(yīng)的連接點(diǎn)纺酸。
c. 增強(qiáng)(Advice):增強(qiáng)是織入到目標(biāo)類(lèi)連接點(diǎn)上的一段程序代碼窖逗。Spring提供的增強(qiáng)接口都是帶方位名的,如:BeforeAdvice餐蔬、AfterReturningAdvice碎紊、ThrowsAdvice等。很多資料上將增強(qiáng)譯為“通知”用含,這明顯是個(gè)詞不達(dá)意的翻譯矮慕,讓很多程序員困惑了許久帮匾。

說(shuō)明: Advice在國(guó)內(nèi)的很多書(shū)面資料中都被翻譯成”通知”啄骇,但是很顯然這個(gè)翻譯無(wú)法表達(dá)其本質(zhì),有少量的讀物上將這個(gè)詞翻譯為”增強(qiáng)”瘟斜,這個(gè)翻譯是對(duì)Advice較為準(zhǔn)確的詮釋?zhuān)覀兺ㄟ^(guò)AOP將橫切關(guān)注功能加到原有的業(yè)務(wù)邏輯上缸夹,這就是對(duì)原有業(yè)務(wù)邏輯的一種增強(qiáng),這種增強(qiáng)可以是前置增強(qiáng)螺句、后置增強(qiáng)虽惭、返回后增強(qiáng)、拋異常時(shí)增強(qiáng)和包圍型增強(qiáng)蛇尚。

d. 引介(Introduction):引介是一種特殊的增強(qiáng)芽唇,它為類(lèi)添加一些屬性和方法。這樣取劫,即使一個(gè)業(yè)務(wù)類(lèi)原本沒(méi)有實(shí)現(xiàn)某個(gè)接口匆笤,通過(guò)引介功能,可以動(dòng)態(tài)的未該業(yè)務(wù)類(lèi)添加接口的實(shí)現(xiàn)邏輯谱邪,讓業(yè)務(wù)類(lèi)成為這個(gè)接口的實(shí)現(xiàn)類(lèi)炮捧。
e. 織入(Weaving):織入是將增強(qiáng)添加到目標(biāo)類(lèi)具體連接點(diǎn)上的過(guò)程,AOP有三種織入方式:①編譯期織入:需要特殊的Java編譯期(例如AspectJ的ajc)惦银;②裝載期織入:要求使用特殊的類(lèi)加載器咆课,在裝載類(lèi)的時(shí)候?qū)︻?lèi)進(jìn)行增強(qiáng)末誓;③運(yùn)行時(shí)織入:在運(yùn)行時(shí)為目標(biāo)類(lèi)生成代理實(shí)現(xiàn)增強(qiáng)。Spring采用了動(dòng)態(tài)代理的方式實(shí)現(xiàn)了運(yùn)行時(shí)織入书蚪,而AspectJ采用了編譯期織入和裝載期織入的方式喇澡。
f. 切面(Aspect):切面是由切點(diǎn)和增強(qiáng)(引介)組成的,它包括了對(duì)橫切關(guān)注功能的定義殊校,也包括了對(duì)連接點(diǎn)的定義撩幽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市箩艺,隨后出現(xiàn)的幾起案子窜醉,更是在濱河造成了極大的恐慌,老刑警劉巖艺谆,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榨惰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡静汤,警方通過(guò)查閱死者的電腦和手機(jī)琅催,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)虫给,“玉大人藤抡,你說(shuō)我怎么就攤上這事∧ü溃” “怎么了缠黍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)药蜻。 經(jīng)常有香客問(wèn)我瓷式,道長(zhǎng),這世上最難降的妖魔是什么语泽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任贸典,我火速辦了婚禮,結(jié)果婚禮上踱卵,老公的妹妹穿的比我還像新娘廊驼。我一直安慰自己,他們只是感情好惋砂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布妒挎。 她就那樣靜靜地躺著,像睡著了一般班利。 火紅的嫁衣襯著肌膚如雪饥漫。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天罗标,我揣著相機(jī)與錄音庸队,去河邊找鬼积蜻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛彻消,可吹牛的內(nèi)容都是我干的竿拆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼宾尚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼丙笋!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起煌贴,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤御板,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后牛郑,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體怠肋,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年淹朋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了笙各。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡础芍,死狀恐怖杈抢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仑性,我是刑警寧澤惶楼,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站虏缸,受9級(jí)特大地震影響鲫懒,放射性物質(zhì)發(fā)生泄漏嫩实。R本人自食惡果不足惜刽辙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甲献。 院中可真熱鬧宰缤,春花似錦、人聲如沸晃洒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)球及。三九已至氧骤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吃引,已是汗流浹背筹陵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工刽锤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朦佩。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓并思,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親语稠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宋彼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 基本知識(shí) 其實(shí), 接觸了這么久的 AOP, 我感覺(jué), AOP 給人難以理解的一個(gè)關(guān)鍵點(diǎn)是它的概念比較多, 而且坑爹...
    永順閱讀 8,184評(píng)論 5 114
  • 前言 只有光頭才能變強(qiáng) 上一篇已經(jīng)講解了Spring IOC知識(shí)點(diǎn)一網(wǎng)打盡!仙畦,這篇主要是講解Spring的AOP模...
    Java3y閱讀 6,883評(píng)論 8 181
  • AOP實(shí)現(xiàn)可分為兩類(lèi)(按AOP框架修改源代碼的時(shí)機(jī)): 靜態(tài)AOP實(shí)現(xiàn):AOP框架在編譯階段對(duì)程序進(jìn)行修改慨畸,即實(shí)現(xiàn)...
    數(shù)獨(dú)題閱讀 2,317評(píng)論 0 22
  • 簡(jiǎn)不得 書(shū)不語(yǔ)(貳) ---我的青春,在零捌碉京。 2008-8-21 17:28 心情 落下的厢汹,花開(kāi)花謝,一生的宿命...
    李先生不將就閱讀 285評(píng)論 1 2
  • 昨天放學(xué)回來(lái)你神秘的說(shuō)谐宙,要拿個(gè)快遞烫葬。爸爸媽媽有點(diǎn)疑惑,你解釋媽媽的生日禮物沒(méi)發(fā)全凡蜻,哦搭综,又讓媽媽一陣驚喜,這孩子真用...
    幸富ǎ快樂(lè)_c0cb閱讀 667評(píng)論 0 0