构造器注入bean
之前使用的都是调用setxxx得方法来注入,今天又学习了通过构造器注入的方法
通过比较set和构造器两种注入方式得代码来讲解(以下得代码id值等命名并不严谨,只是达到一个解释得作用)
xml文件中:
set:
<bean id="setmethod" class="XXXXXXX">
<property name="name"><value>余飞</value>
</property>
构造器方法:
<bean id="construct" class="it.construct.ConstructBean">
<!--index从零开始,决定它的参数位置,type是它的参数类型-->
<constructor-arg index="0" type="java.lang.String" value="余飞"></constructor-arg>
<constructor-arg index="1" type="int" value="04152015"/>
<!--选择构造函数是根据它的设置了几个构造参数参数,就是 <constructor-arg />语句-->
</bean>
当有多个构造方法时,xml文件会根据<bean></bean>中得几个<constructor-arg xxxxx />语句得个数来匹配响应参数得构造方法
在bean类:
set:
set方法别没有改变,没有构造函数的要求
构造器:
如果要用构造器注入,则需要在bean类中更改构造方法
如果有两个参数得构造函数就需要写两个构造参数
Class ConstructBean{
public ConstructBean(String name,int id) {//这个构造方法有两个参数,则如果xml文集中配置得bean有两个参数则会调用这个构造函数注入
this.name=name;//这里多了一个辅赋值语句,因为通过构造器注入,则需要在构造器中赋值
this.id=id;
}
}