java spring IOC xml方式注入对象类型的list集合数据

我们新创建一个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 参考代码如下


<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">
        
        <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方法

运行结果如下
java spring IOC xml方式注入对象类型的list集合数据_第1张图片
其实这就已经输出类对象了 但为了看到明显 我们重写一个Course类的toString方法

public String toString() {
 return "cname = "+cname;
}

再次运行测试类 输出结果如下
java spring IOC xml方式注入对象类型的list集合数据_第2张图片
也是没有任何问题

你可能感兴趣的:(java,spring,xml)