Spring學(xué)習(xí)(二)

spring框架核心技術(shù)的兩大概念之AOP:

? ? AOP(Aspect Oriented Programming)是相對(duì)于傳統(tǒng)OOP來說的窖剑,在傳統(tǒng)OOP中浓领,代碼邏輯是自上而下的力图,經(jīng)常會(huì)出現(xiàn)一些橫切問題构韵,但是與業(yè)務(wù)關(guān)聯(lián)不大,導(dǎo)致代碼散落到代碼各處绰筛,難以維護(hù),而AOP則使得這些橫切代碼與業(yè)務(wù)代碼解耦描融。我們經(jīng)常應(yīng)用到的應(yīng)用場(chǎng)景包括但不限于日志記錄铝噩,權(quán)限驗(yàn)證,效率檢查窿克,事務(wù)管理骏庸。

? ? Spring中AOP主要有包括這些定義:?

????????aspect切面:是連接點(diǎn)毛甲、切面、代理的一個(gè)載體,

? ? ? ? pointcut切點(diǎn):表示的連接點(diǎn)的集合

????????Joinpoint連接點(diǎn): 表示程序代碼中的一個(gè)點(diǎn)具被,一般指方法

????????target 目標(biāo)對(duì)象:是原來的對(duì)象也就是被AOP代理增強(qiáng)的對(duì)象

????????Weaving 織入:目標(biāo)對(duì)的方法也就是連接點(diǎn)方法被增強(qiáng)的過程被稱為織入玻募。

????????advice通知:是增強(qiáng)方法在連接點(diǎn)的位置以及切點(diǎn)方法的邏輯實(shí)現(xiàn)。

JoinPoint是支持五種類型:

? ??Before:連接點(diǎn)執(zhí)行之前執(zhí)行

????After:連接點(diǎn)正常執(zhí)行之后執(zhí)行

????After throwing:連接點(diǎn)執(zhí)行拋出異常的時(shí)候

????After (finally):無論連接點(diǎn)是正常退出還是異常退出一姿,都會(huì)執(zhí)行

????Around advice: 環(huán)繞通知,圍繞連接點(diǎn)執(zhí)行七咧,例如方法調(diào)用。這是最有用的切面方式叮叹。around通知可以在方法調(diào)用之前和之后執(zhí)行自定義行為艾栋。它還負(fù)責(zé)選擇是繼續(xù)加入點(diǎn)還是通過返回自己的返回值或拋出異常來快速建議的方法執(zhí)行。

JoinPoint主要支持的切入點(diǎn)的標(biāo)識(shí)符如下:

? ??execution:用于匹配方法執(zhí)行連接點(diǎn)蛉顽,也是aop中最常用的方法蝗砾,因?yàn)榱6茸钚。芏ㄎ坏椒椒?jí)別

? ? within:粒度稍微粗點(diǎn)携冤,定位到包悼粮、接口、類級(jí)別

? ??args:與方法無關(guān)噪叙,匹配方法的入?yún)?/p>

? ??this:JDK代理時(shí),指向接口和jdk生成的代理類矮锈,而cglib代理時(shí),則指向接口以及子類

? ??target:用于匹配當(dāng)前目標(biāo)對(duì)象類型的執(zhí)行方法

JointPoint主要方法:

? ? getThis():返回代理對(duì)象

? ? getTarget():返回目標(biāo)對(duì)象

ProceedingPointCut:

? ? 繼承了JointPoint類睁蕾,能通過調(diào)用proceed調(diào)用連接點(diǎn)方法或通知苞笨,或者修改入?yún)?/p>

SpringAop與AspectJ的關(guān)系:springAop與aspectJ均為AOP思想的一種實(shí)現(xiàn),而springAOP中由于語(yǔ)法過于復(fù)雜而難以使用子眶,因此借助了aspectJ的語(yǔ)法來支持瀑凝,一般是通過注解@enableAspectJAutoProxy?或者xml aop:aspectj-autoProxy的定義的方式來開啟aspectJ語(yǔ)法的支持,springAop默認(rèn)使用JDK代理來實(shí)現(xiàn)AOP的代理臭杰,而JDK代理的實(shí)現(xiàn)方式為通過繼承Proxy類并實(shí)現(xiàn)接口來實(shí)現(xiàn)的,代碼為ProxyGenertor.generateProxyClass返回字節(jié)流粤咪,springAop還支持另外一種代理方式,可通過proxyTargetClass來開啟CGLIB的代理渴杆,cglib的實(shí)現(xiàn)是通過繼承目標(biāo)類實(shí)現(xiàn)的寥枝。

springAop中aspect默認(rèn)是單例的,可以通過perthis來處理部分代理對(duì)象為原型對(duì)象的情況,防止有共享對(duì)象在進(jìn)行aop處理的時(shí)候出現(xiàn)多線程的問題磁奖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末囊拜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子比搭,更是在濱河造成了極大的恐慌冠跷,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蜜托,居然都是意外死亡抄囚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門橄务,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幔托,“玉大人,你說我怎么就攤上這事仪糖「趟荆” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵锅劝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蟆湖,道長(zhǎng)故爵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任隅津,我火速辦了婚禮诬垂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伦仍。我一直安慰自己结窘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布充蓝。 她就那樣靜靜地躺著隧枫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谓苟。 梳的紋絲不亂的頭發(fā)上官脓,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音涝焙,去河邊找鬼卑笨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仑撞,可吹牛的內(nèi)容都是我干的赤兴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼隧哮,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼桶良!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起近迁,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤艺普,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歧譬,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岸浑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瑰步。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矢洲。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缩焦,靈堂內(nèi)的尸體忽然破棺而出读虏,到底是詐尸還是另有隱情,我是刑警寧澤袁滥,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布盖桥,位于F島的核電站,受9級(jí)特大地震影響题翻,放射性物質(zhì)發(fā)生泄漏揩徊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一嵌赠、第九天 我趴在偏房一處隱蔽的房頂上張望塑荒。 院中可真熱鬧,春花似錦姜挺、人聲如沸齿税。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凌箕。三九已至,卻和暖如春溜在,著一層夾襖步出監(jiān)牢的瞬間陌知,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工掖肋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仆葡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓志笼,卻偏偏與公主長(zhǎng)得像沿盅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纫溃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

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