IOC實現之總結篇 六

2021-07-30 00:07:26 字數 703 閱讀 3715

再回到ioc的話題,spring的ioc作為乙個完整的容器產品,通過對它原始碼的閱讀,我們看到了它精妙絕倫的設計,無論是對資源檔案的抽象還是對pojo的抽象,spring使用了大量的類來完成這個抽象過程,這個過程現在我們看起來簡單但實際上卻包含了spring參與者的眾多智慧型,裡面無論是**結構還是設計模式都值得我們去學習,閱讀原始碼除了清楚原理,最重要的還是借鑑作者的思維吶!

我們經常說ioc,ioc是 inversion of control 的縮寫,既控制反轉,什麼是控制反轉呢?我認為,控制和反轉是兩個概念,控制指的是建立具體物件的地方,反轉指的是責任的反轉,什麼是責任呢?就是建立物件的責任!

假設有兩個物件, 人類與斧頭,  人類需要斧頭;

在沒有spring以前,我們需要某個物件,得自己去進行建立,所以,你會在**中寫到 person.setaxe( new axe() );

在這裡,"控制方" 就是 "你";

而採用spring之後,你將不需要去構建依賴的物件,由ioc容器幫你構建好並提供給你,這個過程我們也叫做di(依賴注入) ,在這裡,"控制方" 變成了ioc容器!

總結來說,控制反轉就是說 建立所依賴的物件的職責從原本得自己來寫**建立而轉換成了由spring的ioc容器為我們來建立;

最後,ioc是spring中最重要的底層實現,後面的aop,事物,springmvc都得依靠容器內建立起的bean關係圖來完成功能,在下面的文章中,我們開始來講aop的實現原理;

Spring之IOC容器篇

ioc inversion of control 控制反轉的英文縮寫 依賴物件的獲得被反轉了,一般是通過di dependency injection 依賴注入 來實現的,可以大大降低類之間的耦合度。ioc di是spring等框架的核心,或者說是基石,如果沒有ioc容器 di就沒有spring等框...

棧與佇列 六 之總結篇

學完棧與佇列想想其實就是學它們的思想 棧 後進先出。佇列 先進先出 其實抓住了這兩個關鍵內容,再記住一些常用操作格式,就好 1.首先棧是後進先出的線性表 只在表尾進行操作 想象子彈問題 2.棧的應用在生活中處處都是,它最常用的還是順序結構,在期間的學習,我也利用棧寫了rpn計算器和它的高階中綴計算器...

Spring之IOC容器的實現

控制反 依賴物件的獲得被反轉了,即依賴注入。beandefinition用來管理基於spring的應用中的各種物件以及它們之間的相互依賴關係。抽象了我們對bean的定義,是讓容器起作用的主要資料模型。依賴反轉功能都是圍繞對beandefinition的處理來完成的。程式設計式使用ioc容器的過程 c...