1,set注入 2,構造注入
原理:通過類的setter方法完成依賴關係的設定
name屬性的取值依setter方法名而定,要求這個類裡面這個對應的屬性必須有setter方法。
set方法注入時spring中配置檔案:
<?xml version="1.0" encoding="utf-8"?>
土豪金
定義car類:
package org.spring01;
public class car
public void setname(string name)
public string getcolor()
public void setcolor(string color)
public string getclas()
public void setclas(string clas)
public car(string name, string color, string clas)
public car()
@override
public string tostring() }
定義person類:
package org.spring01;
public class person
public void setname(string name)
public int getage()
public void setage(int age)
public car getcar()
public void setcar(car car)
public person(string name, int age, car car)
public person()
@override
public string tostring() }
測試類:
package org.spring01;
import org.junit.test;
public class springtest
@test
public void togetcar()
}
使用單元測試(junit)測試togetperson()方法,結果為:
person [name=張三, age=11, car=car [name=賓士, color=土豪金, clas=高階轎車]]
原理:通過建構函式完成依賴關係的設定
構造注入指的是在接受注入的類中,定義乙個構造方法,並在構造方法的引數中定義需要注入的元素,其中,index表示構造方法中的引數索引(第乙個引數索引為0)。
構造方法注入時spring中配置檔案:
<?xml version="1.0" encoding="utf-8"?>
白色
定義car類:
package org.spring02;
public class car
public car()
@override
public string tostring() }
定義person類:
package org.spring02;
public class person
public person()
@override
public string tostring() }
測試類:
package org.spring02;
import org.junit.test;
public class springtest
@test
public void togetcar()
}
使用單元測試(junit)測試togetperson()方法,結果為:
person [name=李四, age=23, car=car [name=大眾, color=白色, clas=中級轎車]]
上面的例子都採用了單元測試的方法檢測執行結果,需要導庫: junit
demo的大體結構:
我們可以看到,set方法和構造方法都可以設值成功, 實際開發中最常用到的是set方法設值。但這兩種依賴注入的方式並沒有絕對的好壞,只是使用的場合不同。
使用構造注入可以在構建物件的同時完成依賴關係到的建立,所以如果要建立的物件的關係很多,使用構造注入會在構造方法上留下很多引數,可讀性極差,所以當物件的關係比較多的時候採用set方法注入。
使用set方法注入是通過類的setter方法完成依賴關係的設定的,所以不能保證相關的資料在執行時不被更改設定。所以如果想使一些資料變為唯讀或者私有,就要採用構造注入了。
建議採用以set注入為主,構造注入為輔的注入策略。對於依賴關係無須變化的注入,盡量採用構造注入;而其他的依賴關係的注入,則考慮採用set注入。
常見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物件屬性的注入方式有兩種 設值注入和構造注入。先看 假設有個類為people,該物件包含三個屬性,name和school還有age,這些屬性都有各自的setter和getter方法,還有乙個包含這三個屬性的構造方法。如果用spring來管理這個物件,那麼有以下兩種方式為peop...