天天看點

IOC控制反轉(Spring)

2 Spring IOC控制反轉

2.1什麼是控制反轉

IOC(Inversion of Control),控制反轉。

所謂的控制反轉,就是指将對象的建立,對象的存儲(map),對象的管理(依賴查找,依賴注入)交給了spring容器。

(spring容器是spring中的一個核心子產品,用于管理對象)

在此之前,當需要對象時,通常是利用new關鍵字建立一個對象:

IOC控制反轉(Spring)

但由于new對象,會提高代碼之間耦合性.

IOC控制反轉(Spring)

而使用spring架構,對象的建立可以交給spring來做:

IOC控制反轉(Spring)

隻需要将類提前配置在spring配置檔案中,就可以将對象的建立交給spring容器,當需要對象時,不需要自己建立,而是直接通過spring擷取即可,省去了new對象,可以降低代碼之間的耦合性。

2.2 IOC入門案例

2.2.1建立Maven工程,引入spring相關依賴包

1)、建立Maven—Java工程
IOC控制反轉(Spring)
2、引入spring的jar包:在maven工程的pom.xml檔案中添加如下配置:
IOC控制反轉(Spring)

導入後儲存pom檔案,項目如圖所示:

IOC控制反轉(Spring)

2.2.2建立spring核心配置檔案—applicationContext.xml

1)、在工程的java/resources目錄下,建立applicationContext.xml檔案:
IOC控制反轉(Spring)
2、在applicationContext.xml中添加如下内容(下面的配置不需要掌握,隻是一個檔案格式):
IOC控制反轉(Spring)

2.2.3建立實體類—Hello,并将Hello對象的建立交給Spring管理

1)、建立Hello實體類
IOC控制反轉(Spring)
2、在Hello類中添加方法如下:
IOC控制反轉(Spring)
3)、将Hello對象的建立交給Spring容器來管理,在核心配置檔案中添加如下配置:
IOC控制反轉(Spring)

2.2.4建立測試類—TestIOC,建立Hello對象,并調用其中的方法。

1)、建立TestIOC測試類
IOC控制反轉(Spring)
2、測試步驟及代碼如下:
IOC控制反轉(Spring)
3)、運作結果:
IOC控制反轉(Spring)

2.3 IOC小結

這就是spring架構的IOC——控制反轉。之前我們自己new對象,例如:

User u = new User();

而現在,變成由一個初始化的xml配置檔案來建立,也就是由spring容器來建立。

Hello hello = (Hello) ac.getBean(“hello”);

當程式運作,spring開始工作後,會加載整個xml核心配置檔案,讀取到,擷取到class屬性中類的全路徑,利用反射建立該類的對象。

3、面試題

3.1、