Spring依賴注入常用的兩種方式
阿新 • • 發佈:2019-02-02
Spring中依賴注入:定義物件之間的彼此依賴,常用的兩種注入方式:setter方法和構造器
1、setter方法:在容器中宣告變數並插入對應setter和getter方法,在對應xml文件中配置,程式碼片段:
public class AnimalSer {
private Cat cat;
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
} }
配置如下:
由於使用方便,用的比較多。<bean id="cat" class="bea.Cat"> <constructor-arg> <value type="java.lang.String">50</value> </constructor-arg> <constructor-arg> <value type="java.lang.Integer">90</value> </constructor-arg> </bean> <bean id="AnimalSer" class="ser.AnimalSer"> <property name="cat" ref="cat"></property> </bean>
2、構造器注入:在容器中宣告變數和構造方法,在xml中配置
public class AnimalSer {
private Cat cat;
public AnimalSer(Cat cat ){
super();
this.cat=cat;
}
}
配置:
<bean id="cat" class="bea.Cat"> <constructor-arg> <value type="java.lang.String">50</value> </constructor-arg> <constructor-arg> <value type="java.lang.Integer">90</value> </constructor-arg> </bean> <bean id="AnimalSer" class="ser.AnimalSer"> <constructor-arg> <ref bean="cat"/> </constructor-arg> </bean>
注意:在構造器中包含基本型別變數,為了避免構造歧義,在value後面使用type標籤,顯式宣告每個建構函式引數的資料型別,很好的避免歧義
public class Cat implements HelloWorld{
private String name;
private int age;
public Cat(String name, int age) {
super();
this.name = name;
this.age = age;
}
}