Spring学习02-有参构造器的使用

Spring学习–程序二:通过构造器为bean属性赋值(constructor-arg标签使用)

1.通过name属性直接指定参数赋值(推荐)

 <bean id="student02" class="com.ioc.Student">
  
  
  <constructor-arg name="stuName" value="meteor02">constructor-arg>
  <constructor-arg name="stuId" value="1777120101">constructor-arg>
  <constructor-arg name="stuMajor" value="软件工程">constructor-arg>
  <constructor-arg name="stuAge" value="18">constructor-arg>
 bean>

2.严格按照参数顺序赋值

<bean id="student03" class="com.ioc.Student">
  
  <constructor-arg value="meteor03">constructor-arg>
  <constructor-arg value="1777120103">constructor-arg>
  
  <constructor-arg value="19" index="3">constructor-arg>
  <constructor-arg value="软件工程" index="2">constructor-arg>
 bean>

3.使用type解决重载问题

<bean id="student04" class="com.ioc.Student">
  
  
  
  <constructor-arg value="meteor04">constructor-arg>
  <constructor-arg value="1777120104">constructor-arg>
  <constructor-arg value="18" type="Integer">constructor-arg>
 bean>
 <bean id="student05" class="com.ioc.Student">
  
  
  
  <constructor-arg value="meteor04">constructor-arg>
  <constructor-arg value="1777120104">constructor-arg>
  <constructor-arg value="软件工程" type="String">constructor-arg>
 bean>

测试

@Test
 public void test02() {  
  //1.情况一:使用name属性
  ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
  System.out.println("#######################");
  Student stu01 = ioc.getBean("student02", Student.class);
  System.out.println(stu01);
  //2.情况二:省略name属性
  Student stu02 = (Student)ioc.getBean("student03");
  System.out.println(stu02);
  //3.情况三:解决重载相关问题
  Student stu03 = ioc.getBean("student04", Student.class);
  System.out.println(stu03);
  Student stu04 = ioc.getBean("student05", Student.class);
  System.out.println(stu04);
 }

Spring学习02-有参构造器的使用_第1张图片

你可能感兴趣的:(JAVA笔记)