Spring(九)—— 参数注入,构造方法讲解
一、示例代码如下
1. Student.java
1 package com.gyf.model; 2 3 public class Student { 4 private String username; 5 private String password; 6 private Integer age; 7 8 public Student() { 9 } 10 11 public Student(String username, String password) { 12 this.username = username; 13 this.password = password; 14 } 15 16 public Student(String username, Integer age) { 17 this.username = username; 18 this.age = age; 19 } 20 21 @Override 22 public String toString() { 23 return "Student{" + 24 "username='" + username + '\'' + 25 ", password='" + password + '\'' + 26 ", age=" + age + 27 '}'; 28 } 29 }
2. beans6.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation=" 5 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 <!--构造方法注入属性值--> 7 <!--配置一个bean,通过构造方法注入参数--> 8 <bean id="stu" class="com.gyf.model.Student"> 9 <constructor-arg name="username" value="admin"></constructor-arg> 10 <constructor-arg name="password" value="123456"></constructor-arg> 11 <!--引用另一个bean时通知--> 12 <!--<constructor-arg name="" ref=""></constructor-arg>--> 13 </bean> 14 15 <bean id="stu2" class="com.gyf.model.Student"> 16 <!----> 17 <constructor-arg index="0" value="admin" type="java.lang.String"></constructor-arg> 18 <constructor-arg index="1" value="17" type="java.lang.Integer"></constructor-arg> 19 </bean> 20 </beans>
3. Lesson06.java
1 package com.gyf.test; 2 3 import com.gyf.model.Student; 4 5 import org.junit.Test; 6 import org.springframework.context.ApplicationContext; 7 import org.springframework.context.support.ClassPathXmlApplicationContext; 8 9 public class Lesson06 { 10 11 @Test 12 public void test1(){ 13 /** 14 * 给bean属性赋值的三种方式 15 * 第一种方式:构造方法 16 */ 17 ApplicationContext context = new ClassPathXmlApplicationContext("beans6.xml"); 18 Student stu = (Student) context.getBean("stu"); 19 Student stu2 = (Student) context.getBean("stu2"); 20 System.out.println(stu); 21 System.out.println(stu2); 22 } 23 }