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 参考代码如下

<?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;
}

再次运行测试类 输出结果如下
在这里插入图片描述
也是没有任何问题

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/128762206
今日推荐