1.设置注入
1.1定义学生类Student
package com.abc.di01;
public class Student {
private String name;
private int age;
private School school;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, int age, School school) {
super();
this.name = name;
this.age = age;
this.school = school;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", school=" + school + "]";
}
}
package com.abc.di01;
1.2学校类school
public class School {
private String sname;
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Override
public String toString() {
return "School [sname=" + sname + ", address=" + address + "]";
}
}
application.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myschool" class="com.abc.di01.School">
<property name="sname" value="aynu" /> ps:属性名name是 setXxx()或者getXxx()方法名xxx。
<property name="address" value="弦歌大道" />
</bean>
<bean id="student" class="com.abc.di01.Student"> <property name="name"
value="zs"/> <property name="age" value="11"/> <property name="school" ref="myschool"/> ps:这里school类相当于student的域对象,不能用value要用ref引用出来school类的id ,myschool
</bean>
package com.abc.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.abc.di01.Some;
import com.abc.di01.Student;
1.3定义测试类
package com.abc.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.abc.di01.Student;
public class MyTest {
@Test
public void test() {
// ClassPathXmlApplicationContext("applicationContest.xml")类路径下
String conf = "applicationContest.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
Student student = (Student) ac.getBean("student");
System.out.println(student);
}
}
2.构造器注入 前面不变
<bean id="student" class="com.abc.di01.Student">
<constructor-arg name="name" value="myschool" />
<constructor-arg name="age" value="22" />
<constructor-arg name="school" ref="myschool" />
</bean>
</beans>
3.集合注入
3.1定义Some类
package com.abc.di01;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Some {
private String[]names ;
private List<String> myList;
private List<School> schools;
private Set<String> mySet;
private Map<String, Object> myMap;
public void setNames(String[] names) {
this.names = names;
}
public void setMyList(List<String> myList) {
this.myList = myList;
}
public void setSchools(List<School> schools) {
this.schools = schools;
}
public void setMySet(Set<String> mySet) {
this.mySet = mySet;
}
public void setMyMap(Map<String, Object> myMap) {
this.myMap = myMap;
}
@Override
public String toString() {
return "haha [你的名字=" + Arrays.toString(names) + ", myList=" + myList + ", schools=" + schools + ", mySet=" + mySet
+ ", myMap=" + myMap + "]";
}
}
3.2school类不变
3.3 修改xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myschool1" class="com.abc.di01.School">
<property name="sname" value="aynu"/>
<property name="address" value="弦歌大道"/>
</bean>
<bean id="myschool2" class="com.abc.di01.School">
<property name="sname" value="aynu"/>
<property name="address" value="弦歌大道"/> ps :格式大多数为<property name= ------ value= -,->
特殊: 当用到引用型属性如ref bean=school value= -,->或者
map双列集合key ,value 用对应语法(红色标记)。
</bean>
<bean id="some" class="com.abc.di01.Some">
<property name="names" value="zs,ls"/>
<property name="myList" value="ay,bj"/>
<property name="schools">
<list>
<ref bean ="myschool1"/>
<ref bean ="myschool2"/>
</list>
</property>
<property name="mySet" value="qq,email"/>
<property name="myMap">
<map>
<entry key="1" value="弦歌大道"/>
<entry key="2" value="beiking"/>
</map>
</property>
</bean>
</beans>
3.4定义测试类
package com.abc.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.abc.di01.Some;
import com.abc.di01.Student;
public class MyTest {
@Test
public void test() {
// ClassPathXmlApplicationContext("applicationContest.xml")类路径下
String conf = "applicationContest.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
Some some = (Some) ac.getBean("some");
System.out.println(some);
}