spring框架Ioc學習

Ioc(inversion of control):控制反轉

理解:
(1)在Ioc沒有出現之前,如果對象a需要依賴對象b,那麼在a初始化或運行到某一個點的時候,需要去創建或者調用已經創建的對象b.不管是創建還是直接調用,控制權都在自己手裏.
(2)Ioc出現之後,如果對象a需要依賴對象b,這是會有一個容器來管理這種需求,將對象b注入到對象a中,這樣一個容器我們稱之爲Ioc容器.
綜合(1)(2)我們可以理解到對象a依賴對象b從主動控制變成了被動行爲,也就是控制被反轉了.

DI(dependency injection):依賴注入

DI和Ioc其實是從兩個不同的角度去描述同一件事情.
Ioc強調的是一種思想,DI注重的是手段,一種實踐Ioc的方式:就是利用Ioc容器在運行期間,動態的將某種依賴關係注入到對象當中.

Ioc原理分析

spring Ioc容器執行的流程如下:
(1)資源定位,通過ResourceLoader來完成資源的定位
(2)容器通過 BeanDefinitionReader來完成定義信息的解析
(3)解析後的bean信息通過BeanDefinition對象來表示
(4)在Ioc中註冊BeanDefinition,註冊過程就是在 IOC 容器內部維護的一個HashMap 來保存得到的 BeanDefinition 的過程
這裏寫圖片描述
源碼解析推薦看該博客,針對IOC有一個系列的源碼解析
http://blog.csdn.net/linuu/article/details/50829981

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章