Spring的IOC和AOP

Spring的AOP

為什么會(huì)出現(xiàn)AOP呢

  1. 這就不能不說OOP 面向?qū)ο缶幊?允許開發(fā)者定義縱向的關(guān)系 并且適用于定義橫向的關(guān)系 這樣導(dǎo)致了大量的代碼重用 而且不利于大量代碼的重用 但是代碼最好不要出現(xiàn)大量的代碼的重用
  2. AOP 面向切面編程 將那些跟業(yè)務(wù)關(guān)系無關(guān)的 但確實(shí)對(duì)多個(gè)對(duì)象產(chǎn)生影響的公共行為和邏輯衷笋,抽取出來并且封裝成可以重用的模塊 常見的模塊有 權(quán)限認(rèn)證 日志管理 事物管理等 我們將這個(gè)模塊命名為切面(作用是減少系統(tǒng)中重用的代碼 降低了模塊之間的耦合度)
  3. 常見的實(shí)現(xiàn)方式 代理模式 AOP的代理模式分為靜態(tài)代理和動(dòng)態(tài)代理 靜態(tài)代理的代表有AspectJ 動(dòng)態(tài)代理有jdk和cglib 這兩種
  4. 靜態(tài)代理的實(shí)現(xiàn) AspectJ是靜態(tài)代理的增強(qiáng)敦锌,所謂靜態(tài)代理兼犯,就是AOP框架會(huì)在編譯階段生成AOP代理類,因此也稱為編譯時(shí)增強(qiáng)冀泻,他會(huì)在編譯階段將AspectJ(切面)織入到Java字節(jié)碼中醉者,運(yùn)行的時(shí)候就是增強(qiáng)之后的AOP對(duì)象峻黍。
  5. 動(dòng)態(tài)代理的實(shí)現(xiàn) Spring AOP使用的動(dòng)態(tài)代理躁劣,所謂的動(dòng)態(tài)代理就是說AOP框架不會(huì)去修改字節(jié)碼,而是每次運(yùn)行時(shí)在內(nèi)存中臨時(shí)為方法生成一個(gè)AOP對(duì)象邮屁,這個(gè)AOP對(duì)象包含了目標(biāo)對(duì)象的全部方法胸蛛,并且在特定的切點(diǎn)做了增強(qiáng)處理,并回調(diào)原對(duì)象的方法樱报。

Spring的ioc(控制反轉(zhuǎn) 依賴注入 DI)

為什么出現(xiàn)IOC 代碼的耦合度變得過高,不利于項(xiàng)目的開發(fā)

  1. IOC就是控制反轉(zhuǎn)葬项,是指創(chuàng)建對(duì)象的控制權(quán)的轉(zhuǎn)移,以前創(chuàng)建對(duì)象的主動(dòng)權(quán)和時(shí)機(jī)是由自己把控的迹蛤,而現(xiàn)在這種權(quán)力轉(zhuǎn)移到Spring容器中民珍,并由容器根據(jù)配置文件去創(chuàng)建實(shí)例和管理各個(gè)實(shí)例之間的依賴關(guān)系,對(duì)象與對(duì)象之間松散耦合盗飒,也利于功能的復(fù)用嚷量。DI依賴注入,和控制反轉(zhuǎn)是同一個(gè)概念的不同角度的描述逆趣,即 應(yīng)用程序在運(yùn)行時(shí)依賴IoC容器來動(dòng)態(tài)注入對(duì)象需要的外部資源蝶溶。
  2. 最直觀的表達(dá)就是,IOC讓對(duì)象的創(chuàng)建不用去new了,可以由spring自動(dòng)生產(chǎn)抖所,使用java的反射機(jī)制梨州,根據(jù)配置文件在運(yùn)行時(shí)動(dòng)態(tài)的去創(chuàng)建對(duì)象以及管理對(duì)象,并調(diào)用對(duì)象的方法的田轧。
  3. 實(shí)現(xiàn)方式 pring的IOC有三種注入方式 :構(gòu)造器注入暴匠、setter方法注入、根據(jù)注解注入傻粘。
  4. IoC讓相互協(xié)作的組件保持松散的耦合每窖,而AOP編程允許你把遍布于應(yīng)用各層的功能分離出來形成可重用的功能組件。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弦悉,一起剝皮案震驚了整個(gè)濱河市窒典,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稽莉,老刑警劉巖崇败,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肩祥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)缩膝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門混狠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疾层,你說我怎么就攤上這事将饺。” “怎么了痛黎?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵予弧,是天一觀的道長。 經(jīng)常有香客問我湖饱,道長掖蛤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任井厌,我火速辦了婚禮蚓庭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仅仆。我一直安慰自己器赞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布墓拜。 她就那樣靜靜地躺著港柜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咳榜。 梳的紋絲不亂的頭發(fā)上夏醉,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天爽锥,我揣著相機(jī)與錄音,去河邊找鬼授舟。 笑死救恨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的释树。 我是一名探鬼主播肠槽,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼奢啥!你這毒婦竟也來了秸仙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤桩盲,失蹤者是張志新(化名)和其女友劉穎寂纪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赌结,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捞蛋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柬姚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拟杉。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熔脂,死狀恐怖貌虾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膀捷,我是刑警寧澤撕捍,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布拿穴,位于F島的核電站,受9級(jí)特大地震影響忧风,放射性物質(zhì)發(fā)生泄漏默色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一狮腿、第九天 我趴在偏房一處隱蔽的房頂上張望该窗。 院中可真熱鬧,春花似錦蚤霞、人聲如沸酗失。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽规肴。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拖刃,已是汗流浹背删壮。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兑牡,地道東北人央碟。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像均函,于是被迫代替她去往敵國和親亿虽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • IOC是一個(gè)容器苞也,可以管理和創(chuàng)建對(duì)象洛勉,一般java程序中的每個(gè)業(yè)務(wù)邏輯至少兩個(gè)或以上的對(duì)象來協(xié)作完成,例如當(dāng)類A需...
    五月天_7df7閱讀 298評(píng)論 0 2
  • 前言 本文IOC方面的內(nèi)容借鑒了知乎上一位用戶的回答如迟,感覺比較直觀收毫,鏈接:https://www.zhihu.co...
    Mysql_rong閱讀 749評(píng)論 3 4
  • IOC:依賴注入(控制反轉(zhuǎn)),兩種注入方式:依賴注入和設(shè)置注入殷勘,通過容器動(dòng)態(tài)地將某種依賴注入到組件中此再,通過Spri...
    小沐子_IT閱讀 1,336評(píng)論 0 0
  • Spring Spring 是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(Ioc)和面向切面(AOP)的容器框架。 1玲销、Spring下的...
    熊貓的雄閱讀 1,481評(píng)論 0 0
  • 大大廈的撒旦啊
    66CQcq66閱讀 141評(píng)論 0 0