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