Spring兩種依賴注入方式的比較

2021-09-23 20:06:44 字數 2538 閱讀 7133

我們知道,spring物件屬性的注入方式有兩種:設值注入和構造注入。先看**:

假設有個類為people,該物件包含三個屬性,name和school還有age,這些屬性都有各自的setter和getter方法,還有乙個包含這三個屬性的構造方法。如果用spring來管理這個物件,那麼有以下兩種方式為people設定屬性:

1.設值注入: ?

12

3

4

5

6

<beanid="people"class="com.abc.people">

<propertyname="name"value="張三"/>

<propertyname="school"ref="school"/>

<propertyname="age"value="20"type="int"/>

<beanid="school"class="com.abc.school"/>

2.構造注入: ?

12

3

4

5

6

7

<beanid="people"class="com.abc.people">

<constructor-argindex="0"value="張三"/>

<constructor-argindex="1"ref="school"/>

<constructor-argindex="2"value="20"type="int"/>

<beanid="school"class="com.abc.school"/>

那麼,這兩種注入方式有和區別呢?下面做簡單比較: 

在過去的開發過程中,這兩種注入方式都是非常常用的。spring也同時支援兩種依賴注入方式:設值注入和構造注入。這兩種依賴注入的方式,並沒有絕對的好壞,只是適應的場景有所不同。相比之下,設值注入有如下優點:

構造注入也不是絕對不如設值注入,在某些特定的場景下,構造注入比設值注入更加優秀。構造注入有以下優勢:

建議:採用以設值注入為主,構造注入為輔的注入策略。對於依賴關係無需變化的注入,盡量採用構造注入;而其他的依賴關係的注入,則考慮採用設值注入。

常見Spring依賴注入的兩種方式

設定注入 ioc容器使用屬性的setter方法來注入被依賴的例項。構造注入 ioc容器使用構造器來注入被依賴的例項。兩種方法的 比較 設定注入 private string name private string password private void setname string name 同...

Spring依賴注入常用的兩種方式

spring中依賴注入 定義物件之間的彼此依賴,常用的兩種注入方式 setter方法和構造器 1 setter方法 在容器中宣告變數並插入對應setter和getter方法,在對應xml文件中配置,片段 public class animalser public void setcat cat ca...

Spring的兩種注入方式

帶著前面的疑問,不斷的學習spring的知識,然後再回過頭去解決那些疑問。現在我們來看看spring的兩種注入方式 設值注入 設值注入式利用setter的方式為bean注入依賴關係的方式。上一節就是使用設值注入為bean注入依賴關係。設值注入的關鍵就是在類中必須存在乙個該屬性的setter方法,否則...