我们新创建一个java项目 然后引入spring的基本依赖
在src下创建一个collectiontype 包
在 collectiontype 包下创建一个 Course类
参考代码如下
package collectiontype;
//课程类
public class Course {
//课程名称
private String cname;
public void setCname(String cname) {
this. cname = cname;
}
}
我们定义了一个 cname属性 然后定义了他的set方法
这个类就代表课程存储的工具
然后 在 collectiontype包下创建 Stu类 参考代码如下
package collectiontype;
import java.util.List;
public class Stu {
//学生所学多门课程
private List<Course> courseList;
public void setCourseList(List<Course> courseList) {
this.courseList = courseList;
}
}
这就是个学生类 定义了 list类型的courseList 类型就是我们一个对象 对象具体就是Course课程类的对象
存储学生具体学习了哪些课程
然后定义courseList的set方法
然后在src下创建 bean.xmli 参考代码如下
<?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="course" class="collectiontype.Course">
<property name="cname" value="html"></property>
</bean>
<bean id="course1" class="collectiontype.Course">
<property name="cname" value="css"></property>
</bean>
<bean id="course2" class="collectiontype.Course">
<property name="cname" value="JavaScript"></property>
</bean>
<!-- 集合类型属性注入 -->
<bean id="stu" class="collectiontype.Stu">
<!--list 对象类型属性注入-->
<property name="courseList">
<list>
<ref bean = "course"></ref>
<ref bean = "course1"></ref>
<ref bean = "course2"></ref>
</list>
</property>
</bean>
</beans>
这里很明显 我们定义了多个Course类的对象 赋了不同的值 id不一样 然后 Stu创建对象
给courseList注入我们上面分开定义的Course对象
这就是list xml注入对象的一个方式
然后 我们在Stu类中定义一个test 方法 输出看一下courseList注入的结果
public void test() {
System.out.println(courseList);
}
然后在src目录下创建一个测试类 代码如下
import collectiontype.Stu;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class text {
public static void main(String args[]) {
//获取配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
Stu stu = context.getBean("stu", Stu.class);
stu.test();
}
}
通过ApplicationContext读取xml配置文件 并反射创建对象 再通过对象调用test方法
运行结果如下
其实这就已经输出类对象了 但为了看到明显 我们重写一个Course类的toString方法
public String toString() {
return "cname = "+cname;
}
再次运行测试类 输出结果如下
也是没有任何问题