使用Spring框架调用构造方法
目录
(5).参数为基本数据类型或String类型泛型的List集合
(7).参数为基本数据类型或String类型泛型的Set集合
(9).参数为基本数据类型或String类型泛型的Map集合
1.无参构造方法
Student类:
public class Student {
public Student() {
System.out.println("123456");
}
}
Spring使用bean配置:
<bean class="com.jd.vo.Student"></bean>
测试类Test:
package com.jd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.jd.vo.Student;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("application.xml");
Student student = classPathXmlApplicationContext.getBean(Student.class);
System.out.println(student);
classPathXmlApplicationContext.close();
}
}
结果:
123456
com.jd.vo.Student@c4c815
2.有参构造方法
(1).参数为基本数据类型或String类型
Student类:
public class Student {
private int age;
private String name;
public Student(int age, String name) {
this.age = age;
this.name=name;
System.out.println("222222");
}
}
Spring使用bean配置:
bean class="com.jd.vo.Student">
<constructor-arg name="name" value="gj"></constructor-arg>
<constructor-arg name="age" value="20"></constructor-arg>
</bean>
注:<constructor-arg>双标签用于指定构造函数参数,基本数据类型和String类型值用value属性声明,非String引用数据类型值用ref属性声明。
测试类Test:
package com.jd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.jd.vo.Student;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("application.xml");
Student student = classPathXmlApplicationContext.getBean(Student.class);
System.out.println(student);
classPathXmlApplicationContext.close();
}
}
结果:
222222
com.jd.vo.Student@1341870
(2).参数为非String引用类型
Student类:
public class Student {
private Date birthday;
public Student(Date birthday) {
System.out.println("333333");
}
}
Spring使用bean配置:
bean class="com.jd.vo.Student">
<constructor-arg name="birthday" ref="date"></constructor-arg>
</bean>
测试类Test:
package com.jd.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.jd.vo.Student;
public class Test {
public static void main(String[] args) {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("application.xml");
Student student = classPathXmlApplicationContext.getBean(Student.class);
System.out.println(student);
classPathXmlApplicationContext.close();
}
}
结果:
333333
com.jd.vo.Student@d25987
(3).参数为基本数据类型或String类型数组
Student类:
public class Student {
private int [] scores;
public Stud