spring解析

1.IOC/DI:對象控制權(quán)的轉(zhuǎn)移物遇,從程序代碼本身轉(zhuǎn)移到了外部容器。

通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例,在Spring里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來完成勉耀,這叫做控制反轉(zhuǎn),依賴注入(Dependency injection)創(chuàng)建被調(diào)用者的工作由 Spring容器完成,然后注入調(diào)用者,因此也稱依賴注入翔脱。控制反轉(zhuǎn)和依賴注入是同一個概念媒鼓。

常用依賴注入:

@Autowire默認(rèn)按照類型裝配届吁,默認(rèn)情況下它要求依賴對象必須存在如果允許為null,可以設(shè)置它required屬性為false绿鸣,如果我們想使用按照名稱裝配疚沐,可以結(jié)合@Qualifier注解一起使用;?

@Resource默認(rèn)按照名稱裝配,當(dāng)找不到與名稱匹配的bean才會按照類型裝配潮模,可以通過name屬性指定亮蛔,如果沒有指定name屬性,當(dāng)注解標(biāo)注在字段上擎厢,即默認(rèn)取字段的名稱作為bean名稱尋找依賴對象究流,當(dāng)注解標(biāo)注在屬性的setter方法上,即默認(rèn)取屬性名作為bean名稱尋找依賴對象.?

注意:如果沒有指定name屬性动遭,并且按照默認(rèn)的名稱仍然找不到依賴的對象時候芬探,會回退到按照類型裝配,但一旦指定了name屬性厘惦,就只能按照名稱裝配了----建議使用@Resource偷仿。?


2.AOP是OOP的延續(xù),是Aspect Oriented Programming的縮寫,意思是面向方面編程酝静。將通用需求功能從不相關(guān)類之中分離出來节榜;同時,能夠使得很多類共享一個行為别智,一旦行為發(fā)生變化全跨,不必修改很多類,只要修改這個行為就可以亿遂。AOP就是這種實現(xiàn)分散關(guān)注的編程方法浓若,它將“關(guān)注”封裝在“方面”中

aop:將軟件系統(tǒng)分為核心關(guān)注點和橫切關(guān)注點,核心關(guān)注點主要處理的是業(yè)務(wù)邏輯蛇数,橫切關(guān)注點是一般與業(yè)務(wù)邏輯無關(guān)挪钓,但他們經(jīng)常發(fā)生在核心關(guān)注點的周圍并且都是相似的,如日志處理耳舅,事物碌上,安全,異常處理等浦徊,再說下具體的權(quán)限控制

aop代理由ioc容器負(fù)責(zé)生成管理馏予,依賴關(guān)系也是,主要就是定義切入點盔性,定義增強處理霞丧,

例如:自定義注解實現(xiàn)權(quán)限控制

1)自定義一個注解PrivilegeInfo,使用這個注解為service層中的方法進(jìn)行權(quán)限配?

2) 編寫一個注解解析器AnnotationParse冕香。解析注解@PrivilegeInfo(name=” *”)(注解解析器應(yīng)該把@PrivilegeInfo中的name屬性值解析出來)

3)在AOP中根據(jù)PrivilegeInfo注解的值蛹尝,判斷用戶是否擁有訪問目標(biāo)方法的權(quán)限,有則訪問目標(biāo)悉尾,沒有則給 出提示

關(guān)鍵技術(shù):自定義注解+注解解析+封裝需要的權(quán)限信息如滿足的條件+Spring AOP(編寫切面突那,配置哪些類需要代理)

主要步驟:編寫一個切面,在配置切入點

如下圖:


OOP是關(guān)注將需求功能劃分為不同的并且相對獨立构眯,封裝良好的類愕难,并讓它們有著屬于自己的行為,依靠繼承和多態(tài)等來定義彼此的關(guān)系惫霸;AOP是希望能夠?qū)⑼ㄓ眯枨蠊δ軓牟幌嚓P(guān)的類當(dāng)中分離出來猫缭,能夠使得很多類共享一個行為,一旦發(fā)生變化它褪,不必修改很多類饵骨,而只需要修改這個行為即可翘悉。AOP是使用切面(aspect)將橫切關(guān)注點模塊化茫打,OOP是使用類將狀態(tài)和行為模塊化。在OOP的世界中,程序都是通過類和接口組織的老赤,使用它們實現(xiàn)程序的核心業(yè)務(wù)邏輯是十分合適轮洋。但是對于實現(xiàn)橫切關(guān)注點(跨越應(yīng)用程序多個模塊的功能需求)則十分吃力,比如日志記錄抬旺,驗證弊予。

spring的聲明式事務(wù)管理也是aop的一種體現(xiàn),避免了頻繁的開啟和提交事務(wù)开财,回滾事務(wù)的操作


AOP相關(guān)圖:


AOP各個概念圖


AOP的意義


AOP應(yīng)用場景1


AOP應(yīng)用場景2


AOP處理異常


切入點表達(dá)式


AOP的其他應(yīng)用場景
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汉柒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子责鳍,更是在濱河造成了極大的恐慌碾褂,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件历葛,死亡現(xiàn)場離奇詭異正塌,居然都是意外死亡,警方通過查閱死者的電腦和手機恤溶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門乓诽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咒程,你說我怎么就攤上這事鸠天。” “怎么了帐姻?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵粮宛,是天一觀的道長。 經(jīng)常有香客問我卖宠,道長巍杈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任扛伍,我火速辦了婚禮筷畦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刺洒。我一直安慰自己鳖宾,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布逆航。 她就那樣靜靜地躺著鼎文,像睡著了一般。 火紅的嫁衣襯著肌膚如雪因俐。 梳的紋絲不亂的頭發(fā)上拇惋,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天周偎,我揣著相機與錄音,去河邊找鬼撑帖。 笑死蓉坎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胡嘿。 我是一名探鬼主播蛉艾,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼衷敌!你這毒婦竟也來了勿侯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤缴罗,失蹤者是張志新(化名)和其女友劉穎罐监,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞒爬,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡弓柱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了侧但。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矢空。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖禀横,靈堂內(nèi)的尸體忽然破棺而出屁药,到底是詐尸還是另有隱情,我是刑警寧澤柏锄,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布酿箭,位于F島的核電站,受9級特大地震影響趾娃,放射性物質(zhì)發(fā)生泄漏缭嫡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一抬闷、第九天 我趴在偏房一處隱蔽的房頂上張望妇蛀。 院中可真熱鬧,春花似錦笤成、人聲如沸评架。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纵诞。三九已至,卻和暖如春培遵,著一層夾襖步出監(jiān)牢的瞬間浙芙,已是汗流浹背登刺。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茁裙,地道東北人塘砸。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓节仿,卻偏偏與公主長得像晤锥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子廊宪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348