当指定constructor-arg属性时,容器实例化bean将使用与其相匹配的构造器进行实例化bean。
当类中出现多个构造方法时,如:
public class Student {
private String firstName;
private String lastName;
private int age;
public Student(String firstName,String lastName){
this.firstName=firstName;
this.lastName=lastName;
}
public Student(String firstName,int age){
this.firstName=firstName;
this.age=age;
}
...get set方法
}
由于配置中constructor-arg的值都为String类型,匹配第二个构造器Student(String firstName,int age)
则需要使用 constructor-arg的type属性,指定为type='int'即可。
<bean id="multiConsturctorStudent" class='com.chapter1p5.Student'> <constructor-arg value="lisi"></constructor-arg> <constructor-arg value="5" type="int"></constructor-arg> </bean>
备注:
constructor-arg的index属性用于指定参数的位置,type可以指定该参数的类型。
对于List集合,指定集合中元素的类型可以使用list标签的 value-type指定元素的类型,否则默认为字符串。