2 Spring IOC控制反轉
2.1什麼是控制反轉
IOC(Inversion of Control),控制反轉。
所謂的控制反轉,就是指将對象的建立,對象的存儲(map),對象的管理(依賴查找,依賴注入)交給了spring容器。
(spring容器是spring中的一個核心子產品,用于管理對象)
在此之前,當需要對象時,通常是利用new關鍵字建立一個對象:
但由于new對象,會提高代碼之間耦合性.
而使用spring架構,對象的建立可以交給spring來做:
隻需要将類提前配置在spring配置檔案中,就可以将對象的建立交給spring容器,當需要對象時,不需要自己建立,而是直接通過spring擷取即可,省去了new對象,可以降低代碼之間的耦合性。
2.2 IOC入門案例
2.2.1建立Maven工程,引入spring相關依賴包
1)、建立Maven—Java工程
2、引入spring的jar包:在maven工程的pom.xml檔案中添加如下配置:
導入後儲存pom檔案,項目如圖所示:
2.2.2建立spring核心配置檔案—applicationContext.xml
1)、在工程的java/resources目錄下,建立applicationContext.xml檔案:
2、在applicationContext.xml中添加如下内容(下面的配置不需要掌握,隻是一個檔案格式):
2.2.3建立實體類—Hello,并将Hello對象的建立交給Spring管理
1)、建立Hello實體類
2、在Hello類中添加方法如下:
3)、将Hello對象的建立交給Spring容器來管理,在核心配置檔案中添加如下配置:
2.2.4建立測試類—TestIOC,建立Hello對象,并調用其中的方法。
1)、建立TestIOC測試類
2、測試步驟及代碼如下:
3)、運作結果:
2.3 IOC小結
這就是spring架構的IOC——控制反轉。之前我們自己new對象,例如:
User u = new User();
而現在,變成由一個初始化的xml配置檔案來建立,也就是由spring容器來建立。
Hello hello = (Hello) ac.getBean(“hello”);
當程式運作,spring開始工作後,會加載整個xml核心配置檔案,讀取到,擷取到class屬性中類的全路徑,利用反射建立該類的對象。
3、面試題
3.1、