控制反轉容器之(容器和bean的基本原理)
前言:控制反轉和依賴注入
控制反轉是什麼?是一種設計思想。
控制:IOC容器控制物件,控制外部資源。
反轉:是相對於正轉而言的,正轉就是我們主動去建立物件,而反轉則是我們通過IOC容器被動的建立物件,物件的建立和銷燬都是有IOC容器來控制。相當於控制權不同,之前控制權在主程式的手中,反轉則是控制權在IOC容器的手中。
依賴注入是什麼?
依賴是什麼?:比如說A物件會呼叫B物件中的方法,則此時說明A依賴B。
為什麼需要依賴注入?:通過依賴注入機制,我們可以通過簡單配置來獲取資源,編寫業務層程式碼,而不需要去關注資源來源於何處。
應用程式依賴IOC容器來注入資源。
1.容器和bean的基本原理
1)BeanFactory
是IoC容器的核心介面。它的職責包括:例項化、定位、配置應用程式中的物件及建立這些物件間的依賴。
2)Ioc容器來管理一個或者多個bean。
bean:
通過xml來配置元資料(所以常用的XmlBeanFactory
是BeanFactory),可以通過配置元資料來對Bean進行定義;
例項化bean(靜態構造方法,靜態工廠方法,動態工廠方法)
Resource resource = new FileSystemResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource);
例項化容器(通過beanFactory來例項化容器)
元資料:任何檔案系統中的資料分為資料和元資料,資料就是我們所看到的資料,而元資料指用來描述一個檔案的特徵的系統資料,諸如訪問許可權、檔案擁有者以及檔案資料塊的分佈資訊(inode...)等等)。
bean的定義:
-
全限定類名:這通常就是已定義bean的實際實現類。如果通過呼叫
static
factory方法來例項化bean,而不是使用常規的構造器,那麼類名稱實際上就是工廠類的類名。 -
行為模式:建立模式(prototype還是singleton)、自動裝配模式、依賴檢查模式、初始化以及銷燬方法
-
用於建立bean例項的構造器引數及屬性值。
-
bean之間的關係,即協作 (或者稱依賴)。