理解:
(1)在ioc沒有出現之前,如果物件a需要依賴物件b,那麼在a初始化或執行到某乙個點的時候,需要去建立或者呼叫已經建立的物件b.不管是建立還是直接呼叫,控制權都在自己手裡.
(2)ioc出現之後,如果物件a需要依賴物件b,這是會有乙個容器來管理這種需求,將物件b注入到物件a中,這樣乙個容器我們稱之為ioc容器.
綜合(1)(2)我們可以理解到物件a依賴物件b從主動控制變成了被動行為,也就是控制被反轉了.
di和ioc其實是從兩個不同的角度去描述同一件事情.
ioc強調的是一種思想,di注重的是手段,一種實踐ioc的方式:就是利用ioc容器在執行期間,動態的將某種依賴關係注入到物件當中.
spring ioc容器執行的流程如下:
(1)資源定位,通過resourceloader來完成資源的定位
(2)容器通過 beandefinitionreader來完成定義資訊的解析
(3)解析後的bean資訊通過beandefinition物件來表示
(4)在ioc中註冊beandefinition,註冊過程就是在 ioc 容器內部維護的乙個hashmap 來儲存得到的 beandefinition 的過程
原始碼解析推薦看該部落格,針對ioc有乙個系列的原始碼解析
Spring框架學習之IOC 二
spring框架學習之ioc 二 接著昨天的內容,下面開始ioc基於註解裝配相關的內容 在 classpath 中掃瞄元件 特定元件包括 component 基本註解,標識了乙個受 spring 管理的元件 respository 標識持久層元件 service 標識服務層 業務層 元件 contr...
spring框架溫習 IOC
ioc控制反轉,降低 之間的耦合度。把物件的建立交給spring來完成 實現方法 1.xml配置檔案方式 2.註解方式 使用的技術 xml配置檔案 dom4j解析xml檔案 工廠設計模式 反射 實現原理 問題 controller需要呼叫service,不通過new 修改乙個地方,需要找找找改改改 ...
spring框架IOC配置
ing context 3.2.xsd chema tx chema tx spring tx.xsd chema aop chema aop spring aop.xsd p gzsc 18000 111aaaa bbbb 9999 8888 user wwww 50可以通過註解方法,就不用在xm...