2.3 Spring的核心機制:依賴注入
依賴注入(Dependdency Injection)又稱控制反轉(Inversion of Control,IoC)。傳統模式下,當一個Java物件需要呼叫其他物件時,要麼通過關鍵字new建立一個新物件;要麼運用工廠模式,先建立被依賴物件的工廠物件,再通過工廠物件獲取被依賴物件;兩種方式均為呼叫者主動獲取被依賴物件,這必然會帶來呼叫者與被依賴物件或被依賴物件的工廠物件耦合(依賴程度),不利於升級維護。而使用Spring框架後,呼叫者只需被動接受Spring容器為呼叫者成員變數賦值(我們只需要在Spring配置檔案中為呼叫者配置<property... />
子元素,即可驅動Spring呼叫呼叫者成員變數的setting方法進行賦值)。
依賴注入通常有如下兩種:
- 投值注入:IoC容器使用成員變數的setter方法來注入被依賴物件。
- 構造注入:IoC使用構造器來注入被依賴物件。
XML配置檔案部分程式碼(舉例):
<!--設定注入-->
<!--配置chinese例項,其實現類是Chinese類-->
<bean id="chinese" class="spring.Chinese">
<!--驅動Spring呼叫Chinese類的setAxe()方法,將容器中id="stoneAxe"的bean例項作為傳入引數-->
<property name="axe" ref="stoneAxe" />
</bean>
<bean id="stoneAxe" class="spring.StoneAxe" />
<!--構造注入-->
<bean id="chinese" class="spring.Chinese">
<!--驅動Spring呼叫Chinese帶兩個引數的建構函式來建立物件-->
<!--index屬性用於指定是第幾個構造引數值,type屬性指定該引數型別-->
<constructor-arg ref="steelAxe" index="0">
<constructor-arg value="400" index="1" type="int">
</bean>
相關文章
- Spring的核心機制依賴注入簡介Spring依賴注入
- spring 的依賴注入Spring依賴注入
- Spring依賴注入Spring依賴注入
- Spring依賴注入---Spring依賴注入
- .Net DI(Dependency Injection)依賴注入機制依賴注入
- Spring 依賴注入的理解Spring依賴注入
- 利用反射機制實現依賴注入的原理反射依賴注入
- Spring IOC——依賴注入Spring依賴注入
- Spring 依賴注入 DISpring依賴注入
- Spring的依賴注入的方式Spring依賴注入
- spring 依賴注入的學習Spring依賴注入
- Spring系列.依賴注入配置Spring依賴注入
- Spring.Net 依賴注入Spring依賴注入
- 大白話spring依賴注入Spring依賴注入
- Angular 依賴注入機制實現原理的深入介紹Angular依賴注入
- spring框架學習 依賴注入Spring框架依賴注入
- Spring依賴注入原理學習Spring依賴注入
- Spring學習(三)依賴注入Spring依賴注入
- Spring的三種依賴注入的方式Spring依賴注入
- Maven依賴機制Maven
- spring常用的三種依賴注入方式Spring依賴注入
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- 「Laravel 核心學習」類的反射和依賴注入Laravel反射依賴注入
- 30個類手寫Spring核心原理之依賴注入功能(3)Spring依賴注入
- 死磕Spring原始碼-依賴注入Spring原始碼依賴注入
- Spring原始碼解析——依賴注入(二)Spring原始碼依賴注入
- Spring 控制反轉和依賴注入Spring依賴注入
- Spring原始碼系列:依賴注入-引言Spring原始碼依賴注入
- Spring系列第八講 依賴注入之手動注入Spring依賴注入
- Spring原始碼系列:依賴注入(三)-屬性注入Spring原始碼依賴注入
- ASP.NET Core中的依賴注入(2):依賴注入(DI)ASP.NET依賴注入
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Struts 依賴注入依賴注入
- 【翻譯】 Guice 動機——依賴注入的動機GUI依賴注入
- 依賴倒置(DIP)與依賴注入(DI)依賴注入
- 【Spring】Spring依賴注入與控制反轉理解Spring依賴注入
- 手寫Spring---DI依賴注入(2)Spring依賴注入