Spring配置文件构造器的重载

当指定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指定元素的类型,否则默认为字符串。

原文地址:https://www.cnblogs.com/beenupper/p/2983539.html