国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Spring技術(shù)核心內(nèi)幕 讀書(shū)筆記--IOC容器的實(shí)現(xiàn)小結(jié)

2019-11-11 07:17:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SPRing技術(shù)核心內(nèi)幕 讀書(shū)筆記 –IOC容器的實(shí)現(xiàn)小結(jié)

BeanDefinition的定位。對(duì)IOC容器來(lái)說(shuō),它為管理POJO之間的以來(lái)關(guān)系提供了幫助,但也要依據(jù)Spring的定義規(guī)則提供Bean定義信息。我們可以使用各種形式的Bean定義信息,其中比較熟悉和常用的是使用xml文件格式。在Bean定義方面,Spring為用戶(hù)提供了很大的靈活性。在初始化Ioc的過(guò)程中,首先需要定位到這些有效的bean定義信息,這里Spring使用Resource接口來(lái)統(tǒng)一這些Bean定義信息,而這個(gè)定位由ResourceLoader來(lái)完成。

容器的初始化。在使用上下文時(shí),需要對(duì)它進(jìn)行一個(gè)初始化的過(guò)程,完成初始化之后,這個(gè)容器才可以使用。容器的初始化入口是refresh方法(根據(jù)具體使用的applicationContext不同)。refresh調(diào)用BeanDefinition來(lái)完成bean信息的載入和注冊(cè),但是不完成以來(lái)注入,除非配置了lazy-init的屬性。否則依賴(lài)注入在第一次getBean的時(shí)候調(diào)用注冊(cè)。

這里涉及到一個(gè)循環(huán)引用(Circular Reference)的問(wèn)題。

如果A依賴(lài)B,并且B依賴(lài)A.但兩個(gè)類(lèi)的方法沒(méi)有互相調(diào)用。 * 如果使用的是Constructor依賴(lài),那么就會(huì)拋出Is there an unresolvable circular reference?的錯(cuò)誤 * 如果使用是setter方法注入依賴(lài),那么依賴(lài)注入是分開(kāi)的,當(dāng)需要的時(shí)候才會(huì)注入。就不會(huì)拋出來(lái)循環(huán)引用的異常。 * 如果是A和B之中的方法還有互相調(diào)用,雖然不會(huì)拋出來(lái)循環(huán)引用的異常,但是會(huì)拋出棧溢出的異常。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永兴县| 罗源县| 沙田区| 拉孜县| 灵武市| 斗六市| 大渡口区| 明星| 宁都县| 凭祥市| 同德县| 河津市| 临泉县| 石首市| 仪陇县| 金阳县| 揭东县| 汶川县| 博野县| 乐都县| 鹤壁市| 白沙| 凌云县| 武川县| 平舆县| 镇坪县| 巴彦县| 延津县| 林口县| 七台河市| 榆社县| 新宾| 车致| 玉龙| 汝南县| 石渠县| 皮山县| 响水县| 门源| 九台市| 巴楚县|