AOP術(shù)語(yǔ)

AOP(Aspect-Oriented Programming) 面向切面編程

Aspect: 橫切面的功能谱煤,抽象出類(lèi)或接口禽拔,AOP編程重要的就是識(shí)別出橫切面功能。(方面睹栖,類(lèi)似于字符編碼功能)是advice和pointcut的結(jié)合野来。
Advice: 橫切面功能的具體實(shí)現(xiàn),需要根據(jù)實(shí)際情況分析:

  • 前置(Before): 在目標(biāo)方法被調(diào)用之前調(diào)用advice曼氛。
  • 后置(After): 在目標(biāo)方法完成之后調(diào)用advice舀患, 此時(shí)不關(guān)心方法的輸出是什么。
  • 返回(After-returning): 在目標(biāo)方法成功執(zhí)行之后調(diào)用advice聊浅。
  • 異常(After-throwing): 在目標(biāo)方法拋出異常后調(diào)用advice。
  • 環(huán)繞(Around):advice包裹了被advice的方法,在被advice的方法調(diào)用之前和調(diào)用之后執(zhí)行自定義的行為努咐。

Pointcut: 切入點(diǎn)殴胧,描述橫切面功能應(yīng)用的限制佩迟,不是所有的流程都需要竿屹,有助于縮小切面所通知的連接點(diǎn)范圍。定義了“何處”秉溉。Pointcut的定義會(huì)匹配通知所要織入的一個(gè)或多個(gè)連接點(diǎn)碗誉。

Joinpoint: 連接點(diǎn), 或指組件加入流程的時(shí)機(jī)弄跌, 比如設(shè)置屬性尝苇, 調(diào)用方法等。 Spring只支持方法調(diào)用的連接點(diǎn)糠溜, 而其他的一些框架支持屬性的連接點(diǎn)如:AspectJ,(類(lèi)似于過(guò)濾器的過(guò)濾規(guī)則 request诵冒,forward)。這個(gè)點(diǎn)可以是調(diào)用方法時(shí)汽馋、拋出異常時(shí)豹芯、修改字段時(shí)。切面代碼可以利用這些點(diǎn)插入到應(yīng)用的正常流程中铁蹈,并添加新的行為握牧。

Introduction:Introduction(引入)允許我們向現(xiàn)有的類(lèi)添加新方法或?qū)傩浴?/p>

weaving: 織入,將組件應(yīng)用到業(yè)務(wù)流程中的這個(gè)過(guò)程沿腰,叫縫合或織入(類(lèi)似于將過(guò)濾器配置到web.xml文件的過(guò)程)。在目標(biāo)生命周期有多個(gè)點(diǎn)可以進(jìn)行織入:

  • 編譯期:編譯時(shí)織入习蓬,需要特殊編譯器:AspectJ的織入編譯器就是這種方式織入切面的。
  • 類(lèi)加載期:在目標(biāo)類(lèi)加載到JVM時(shí)被織入芦缰。需要(ClassLoader)
  • 運(yùn)行期:在應(yīng)用運(yùn)行的某個(gè)時(shí)刻被織入枫慷。AOP容器會(huì)為目標(biāo)對(duì)象動(dòng)態(tài)地創(chuàng)建一個(gè)代理對(duì)象。SpringAOP就是以這種方式織入切面的涕俗。

Proxy: 代理神帅,在實(shí)現(xiàn)上,Spring的AOP其實(shí)就是使用JDK的動(dòng)態(tài)代理(使用接口的方式完成代理操作)元镀,也可以使用CGLIB(使用繼承的方式完成代理操作)霎桅。

Target: 業(yè)務(wù)操作的實(shí)際對(duì)象。

術(shù)語(yǔ)太多滔驶。我很難過(guò)揭糕。

最后編輯于
?著作權(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)容

  • 1)連接點(diǎn)(Joinpoint) 程序執(zhí)行的某個(gè)特定位置:如類(lèi)開(kāi)始初始化前、類(lèi)初始化后淀衣、類(lèi)某個(gè)方法調(diào)用前昙读、調(diào)用后...
    小沙鷹168閱讀 1,258評(píng)論 0 2
  • 基本知識(shí) 其實(shí), 接觸了這么久的 AOP, 我感覺(jué), AOP 給人難以理解的一個(gè)關(guān)鍵點(diǎn)是它的概念比較多, 而且坑爹...
    永順閱讀 8,184評(píng)論 5 114
  • 本章內(nèi)容: 面向切面編程的基本原理 通過(guò)POJO創(chuàng)建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,146評(píng)論 0 9
  • 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
  • 本博中關(guān)于spring的文章:Spring IOC和AOP原理,Spring事務(wù)原理探究只嚣,Spring配置文件屬性...
    Maggie編程去閱讀 4,102評(píng)論 0 34