何謂 Spring IOC ?

要了解Spring – Ioc前,我想先來說說 Pojo( Plain Ordinary Java Object / Pure Old Java Object)

Pojo可以被歸類為Java的一個對象(Class),但是一個Java Class卻不能說就是Pojo

因為Java Class可以Implement Interface , Extend Parent Class 但是 Pojo 就是一個

乾淨的 Class 可以包含 參數及方法 卻不能 Implement 及 Extend

Ex :

 

而在Spring – Ioc中可以管理任何的對象,但一般來說通常都會是Pojo Spring – Ioc 可以說是 Spring 的核心思想 可翻譯成控制反轉,但何謂控制反轉,控制甚麼?反轉甚麼?

其實簡單來說就是對Java 對象的控制跟我們一般的認知是相反的,一般來說當我們要建立一個物件的時候都會在應用程式中去 new Object() 並且由應用程式去賦予這個 Object 定義這就是一般的由應用程式去管理,配置所需的物件

Ex:

而在Ioc中則是相反的,Ioc會提供一個容器去產生這些物件,並且配置及管理這些物件,當應用程式需要甚麼物件時再跟Ioc 容器在提供給((DI))應用程式使用,如此一來物件的依賴關係就變成是應用程式依賴Ioc 容器,應用程式也由主動變成被動的等待Ioc來注入(DI)它所需的資源

xml

 

至於 DI ( Dependecy Injection ) 則是 Ioc 的核心 當 Ioc 幫我們創建完對象後 在應用程式運行時動態的去注入所依賴的對象

總結:

  1. Spring-Ioc 負責創建管理對象( Pojo ) >> 創建的對象會放在一個容器中
  1. 當應用程式需要使用某些對象時 由容器提供使用
  1. 應用程式的使用對象所需的資源由Ioc注入
  1. 應用程式依賴著 Ioc , 並且需要Ioc 提供對象所需的資源

5.Ioc 是一種思想,所以他可以被應用至其他地方並不是局限於Spring

以上是 Spring-Ioc 的基本概觀 , 接下來要探討的就是 Spring 在程式碼中是用甚麼方式去實現Ioc 對物件的創建,配置與管理

Facebook Comments