Sping爲何使用依賴注入而不使用實例化對象的方式?
首先說明一下概
依賴注入(Dependency of Injection)和控制反轉(Inversion of Control 簡稱:ioc)是一個概念。
具體含義:
當某個角色(Java實例class A,調用者)須要另外一個角色(另外一個Java實例class B,被調用者)的協助時,在傳統的程序設計過程當中一般由調用者來建立被調用者的實例(在class A裏面 初始化class B)。
但在Spring裏,建立被調用者實例的工做再也不由調用者來完成。所以成爲控制反轉(ioc)。建立被調用者實例的工做由Spring容器來完成,而後注入調用者。所以也稱爲依賴注入
無論是依賴注入仍是控制反轉,都說明Spring採用動態靈活的方式來管理各類對象,對象與對象之間的具體實現互相透明。
java
所謂依賴注入,是指程序運行過程當中,若是須要調用另外一個對象協助時,無須在代碼中建立被調用者,而是依賴於外部的注入。Spring的依賴注入對調用者和被調用者幾乎沒有任何要求,徹底支持對POJO之間依賴關係的管理。依賴注入一般有三種:
- set設值注入
- 構造方法注入
- spring註解注入
spring
其餘方式:接口注入,靜態工廠注入,實例工廠注入編程