1. 程式人生 > >Spring依賴注入常用的兩種方式

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

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;
	}
}