一步一步探究Spring源碼之IOC(一)

1、概述

????IOC--Inversion Of Control钠怯,即控制反轉(zhuǎn)佳魔,是一種設(shè)計(jì)思想。該思想主要包含兩個(gè)方面晦炊,由頂層控制類(lèi)統(tǒng)一管理對(duì)象的生命周期和對(duì)象與對(duì)象之間的依賴(lài)鞠鲜,降低了耦合度,并讓用戶(hù)無(wú)需花費(fèi)精力去管理對(duì)象断国∠湍罚控制:控制對(duì)象的產(chǎn)生及依賴(lài)的入口,反轉(zhuǎn):對(duì)象的產(chǎn)生由開(kāi)發(fā)者產(chǎn)生變?yōu)轫攲赢a(chǎn)生稳衬,由主動(dòng)變?yōu)榱吮粍?dòng)霞捡。IOC引申出兩個(gè)概念:容器、依賴(lài)注入薄疚。

????容器:存放東西的器皿碧信,把東西全部放到這個(gè)器皿里面,當(dāng)需要使用的時(shí)候就去器皿里面拿出來(lái)输涕,用完之后再還回到器皿里音婶。像大家比較熟悉的數(shù)據(jù)庫(kù)的連接池也可以看作是一個(gè)容器,所有數(shù)據(jù)庫(kù)連接都會(huì)放到一個(gè)池子里面莱坎,當(dāng)需要用到連接時(shí)就去池子里面拿一個(gè)衣式,不用了再還回去,使用者不需要關(guān)注連接的管理,只需要拿和還兩個(gè)動(dòng)作碴卧。而在IOC容器也可類(lèi)比連接池弱卡,容器負(fù)責(zé)對(duì)象的實(shí)例化、初始化等住册,它管理整個(gè)對(duì)象的生命周期婶博,所有對(duì)象都存放在容器當(dāng)中,如果需要使用對(duì)象則從容器中拿荧飞,使用者無(wú)需關(guān)注對(duì)象生命周期的管理凡人。

????DI:Dependency Injection 依賴(lài)注入,對(duì)象之間的依賴(lài)關(guān)系由容器運(yùn)行時(shí)決定叹阔,應(yīng)用程序的運(yùn)行依賴(lài)于IOC容器挠轴,其運(yùn)行時(shí)依賴(lài)的對(duì)象也是通過(guò)IOC容器動(dòng)態(tài)的注入。比如對(duì)象A需要操作數(shù)據(jù)庫(kù)耳幢,傳統(tǒng)方式需要在A中自己編寫(xiě)代碼來(lái)獲得一個(gè)Connection對(duì)象岸晦,有了IOC容器之后,只需要告訴IOC容器A中需要一個(gè)Connection睛藻,至于這個(gè)Connection怎么構(gòu)造启上,何時(shí)構(gòu)造,A不需要知道店印。在系統(tǒng)運(yùn)行時(shí)冈在,IOC容器會(huì)在適當(dāng)?shù)臅r(shí)候制造一個(gè)Connection,然后像打針一樣吱窝,注射到A當(dāng)中讥邻,這樣就完成了對(duì)各個(gè)對(duì)象之間關(guān)系的控制迫靖。A需要依賴(lài) Connection才能正常運(yùn)行院峡,而這個(gè)Connection是由IOC容器注入到A中的。

在研究IOC源碼之前需要去了解java的反射機(jī)制系宜,IOC底層是通過(guò)反射實(shí)現(xiàn)的

2照激、架構(gòu)

2.1、核心內(nèi)作用說(shuō)明

2.2吹榴、主要流程圖


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滚婉,隨后出現(xiàn)的幾起案子图筹,更是在濱河造成了極大的恐慌,老刑警劉巖让腹,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件远剩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡骇窍,警方通過(guò)查閱死者的電腦和手機(jī)瓜晤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)腹纳,“玉大人痢掠,你說(shuō)我怎么就攤上這事哈恰。” “怎么了志群?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵着绷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锌云,道長(zhǎng)荠医,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任桑涎,我火速辦了婚禮彬向,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攻冷。我一直安慰自己娃胆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布等曼。 她就那樣靜靜地躺著里烦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禁谦。 梳的紋絲不亂的頭發(fā)上胁黑,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音州泊,去河邊找鬼丧蘸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遥皂,可吹牛的內(nèi)容都是我干的力喷。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼演训,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弟孟!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起仇祭,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤披蕉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后乌奇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眯娱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年礁苗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙缴。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡试伙,死狀恐怖嘁信,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疏叨,我是刑警寧澤潘靖,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站蚤蔓,受9級(jí)特大地震影響卦溢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秀又,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一单寂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吐辙,春花似錦宣决、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至贤惯,卻和暖如春椒丧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背救巷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工壶熏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浦译。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓棒假,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親精盅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帽哑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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