构造函数注入是除属性注入之外的另一种常用的注入方式
构造函数注入的方法:
在类中,可以不用为属性设置setter方法,但是必须要生成该类带参数的构造方法。
在配置文件中配置该类的bean,并配置构造器,在配置构造器中用到 <constructor-arg> 节点。
constructor-arg标签属性:
name属性:通过参数名找到参数列表中对应参数;
index属性:通过参数在参数列表中的索引找到参数列表中对应参数,index从0开始;
type属性:通过参数数据类型找到参数列表中对应参数;
value属性:设置参数列表参数对应的值,用于设定基本数据类型和String类型的数据;
ref属性:如果参数值为非基本数据类型,则可通过ref为参数注入值,其值为另一个bean标签id或name
属性的属性值;
构造器注入案例:
1、编写 com.gx.model.PersonConstructor 类:
public void testPropertySetter(){
//通过Spring容器获取“personSetter”对象
PersonSetter personSetter= (PersonSetter)
context.getBean("personSetter");
System.out.println(personSetter);
}
}
package com.gx.model;
import java.io.Serializable;
public class PersonConstructor implements Serializable {
private String name;
private int age;
private double height;
private Car car;
/*使用name值也会存在歧义的情况,可以配置type属性消除歧义*/
public PersonConstructor(int name, double height,