簡單理解IOC和AOP的原理

IOC,依賴倒置的意思,

所謂依賴多艇,從程序的角度看,就是比如A要調用B的方法像吻,那么A就依賴于B墩蔓,反正A要用到B,則A依賴于B萧豆。

所謂倒置,你必須理解如果不倒置昏名,會怎么著涮雷,因為A必須要有B,才可以調用B轻局,如果不倒置洪鸭,意思就是A主動獲取B的實例:B?b?=?new?B(),這就是最簡單的獲取B實例的方法(當然還有各種設計模式可以幫助你去獲得B的實例仑扑,比如工廠览爵、Locator等等),然后你就可以調用b對象了镇饮。

所以蜓竹,不倒置,意味著A要主動獲取B,才能使用B俱济;到了這里嘶是,你就應該明白了倒置的意思了。倒置就是A要調用B的話蛛碌,A并不需要主動獲取B聂喇,而是由其它人自動將B送上門來。

形象的舉例就是:

通常情況下蔚携,假如你有一天在家里口渴了希太,要喝水,那么你可以到你小區(qū)的小賣部去酝蜒,告訴他們誊辉,你需要一瓶水,然后小賣部給你一瓶水秕硝!

這本來沒有太大問題芥映,關鍵是如果小賣部很遠,那么你必須知道:從你家如何到小賣部远豺;小賣部里是否有你需要的水奈偏;你還要考慮是否開著車去;等等等等躯护,也許有太多的問題要考慮了惊来。也就是說,為了一瓶水棺滞,你還可能需要依賴于車等等這些交通工具或別的工具裁蚁,問題是不是變得復雜了?那么如何解決這個問題呢继准?

解決這個問題的方法很簡單:小賣部提供送貨上門服務枉证,凡是小賣部的會員,你只要告知小賣部你需要什么移必,小賣部將主動把貨物給你送上門來室谚!這樣一來,你只需要做兩件事情崔泵,你就可以活得更加輕松自在:

第一:向小賣部注冊為會員

第二:告訴小賣部你需要什么

是不是和Spring的做法很類似呢秒赤?Spring就是小賣部,你就是A對象憎瘸,水就是B對象

第一:在Spring中聲明一個類:A

第二:告訴Spring入篮,A需要B

假設A是UserAction類,而B是UserService類

在Spring這個商店(工廠)中幌甘,有很多對象/服務:userService,documentService,orgService潮售,也有很多會員:userAction等等痊项,聲明userAction需要userService即可,Spring將通過你給它提供的通道主動把userService送上門來饲做,因此UserAction的代碼示例類似如下所示:


在這段代碼里面线婚,你無需自己創(chuàng)建UserService對象(Spring作為背后無形的手,把UserService對象通過你定義的setUserService()方法把它主動送給了你盆均,這就叫依賴注入H住)

Spring依賴注入的實現(xiàn)技術是:動態(tài)代理

---------------------------------------------------

再說說AOP,即面向切面編程泪姨,面向切面編程的目標就是分離關注點游沿。什么是關注點呢,就是你要做的事肮砾,就是關注點诀黍。假如你是個公子哥,沒啥人生目標仗处,天天就是衣來伸手眯勾,飯來張口,整天只知道玩一件事婆誓!那么吃环,每天你一睜眼,就光想著吃完飯就去玩(你必須要做的事)洋幻,但是在玩之前郁轻,你還需要穿衣服、穿鞋子文留、疊好被子好唯、做飯等等等等事情,這些事情就是你的關注點燥翅,但是你只想吃飯然后玩骑篙,那么怎么辦呢?這些事情通通交給別人去干森书。在你走到飯桌之前替蛉,有一個專門的仆人A幫你穿衣服,仆人B幫你穿鞋子拄氯,仆人C幫你疊好被子,仆人C幫你做飯它浅,然后你就開始吃飯译柏、去玩(這就是你一天的正事),你干完你的正事之后姐霍,回來鄙麦,然后一系列仆人又開始幫你干這個干那個典唇,然后一天就結束了!

AOP的好處就是你只需要干你的正事胯府,其它事情別人幫你干介衔。也許有一天,你想裸奔骂因,不想穿衣服炎咖,那么你把仆人A解雇就是了!也許有一天寒波,出門之前你還想帶點錢乘盼,那么你再雇一個仆人D專門幫你干取錢的活!這就是AOP俄烁。每個人各司其職绸栅,靈活組合,達到一種可配置的页屠、可插拔的程序結構茬底。

從Spring的角度看,AOP最大的用途就在于提供了事務管理的能力攻走。事務管理就是一個關注點蚯斯,你的正事就是去訪問數(shù)據(jù)庫,而你不想管事務(太煩)蟆豫,所以议忽,Spring在你訪問數(shù)據(jù)庫之前,自動幫你開啟事務十减,當你訪問數(shù)據(jù)庫結束之后栈幸,自動幫你提交/回滾事務!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末帮辟,一起剝皮案震驚了整個濱河市速址,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌由驹,老刑警劉巖芍锚,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蔓榄,居然都是意外死亡并炮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門甥郑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逃魄,“玉大人,你說我怎么就攤上這事澜搅∥榉” “怎么了邪锌?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長癌瘾。 經(jīng)常有香客問我觅丰,道長,這世上最難降的妖魔是什么妨退? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任妇萄,我火速辦了婚禮,結果婚禮上碧注,老公的妹妹穿的比我還像新娘嚣伐。我一直安慰自己,他們只是感情好萍丐,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布轩端。 她就那樣靜靜地躺著,像睡著了一般逝变。 火紅的嫁衣襯著肌膚如雪基茵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天壳影,我揣著相機與錄音拱层,去河邊找鬼。 笑死宴咧,一個胖子當著我的面吹牛根灯,可吹牛的內容都是我干的。 我是一名探鬼主播掺栅,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烙肺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氧卧?” 一聲冷哼從身側響起桃笙,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沙绝,沒想到半個月后搏明,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡闪檬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年星著,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粗悯。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虚循,死狀恐怖,靈堂內的尸體忽然破棺而出为黎,到底是詐尸還是另有隱情邮丰,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布铭乾,位于F島的核電站剪廉,受9級特大地震影響,放射性物質發(fā)生泄漏炕檩。R本人自食惡果不足惜斗蒋,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笛质。 院中可真熱鬧泉沾,春花似錦、人聲如沸妇押。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敲霍。三九已至俊马,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肩杈,已是汗流浹背柴我。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扩然,地道東北人艘儒。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像夫偶,于是被迫代替她去往敵國和親界睁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理索守,服務發(fā)現(xiàn)晕窑,斷路器,智...
    卡卡羅2017閱讀 134,652評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評論 25 707
  • 死生契闊卵佛,與子成說杨赤,執(zhí)子之手,與子偕老 一同生死不分離截汪,我們早已立誓言疾牲。讓我握住你的手,同生共死上戰(zhàn)場 ——題記 ...
    瀟瀟寧閱讀 381評論 0 0
  • 有一天 開始從平淡日子感受快樂 看到了明明白白的遠方 我要的幸福 我要穩(wěn)穩(wěn)的幸福 能抵擋末日的殘酷 在不安的深夜 ...
    我在馬路邊丟了一分錢閱讀 199評論 0 0