Spring依赖注入常用的两种方式

来源:互联网 发布:淘宝助理使用 编辑:程序博客网 时间:2024/06/10 01:53

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