微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring-210724-07--IOC容器--Bean管理XML方式-注入集合类型属性&提取注入

spring-210724-07–IOC容器–Bean管理XML方式-注入集合类型属性&提取注入


Stu.java

package com.bgy.spring.collectiontype;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

// 学生
public class Stu {

    // 数组
    private String[] arr;
    // List
    private List<String> list;
    // Map
    private Map<String,String> map;
    // Set
    private Set<String> set;
    // 用来装Courses类型的List集合
    private List<Courses> coursesList;


    public void setCoursesList(List<Courses> coursesList) {
        this.coursesList = coursesList;
    }
    public void setArr(String[] arr) {
        this.arr = arr;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
    public void setSet(Set<String> set) {
        this.set = set;
    }

    @Override
    public String toString() {
        return "Stu{" +"arr=" + Arrays.toString(arr) +", list=" + list +", map=" + map +", set=" + set +
                ", coursesList=" + coursesList +
                '}';
    }
}

Courses.java

package com.bgy.spring.collectiontype;

// 学科
public class Courses {
    private String cname;

    public void setCname(String cname) {
        this.cname = cname;
    }

    @Override
    public String toString() {
        return "Courses{" + "cname='" + cname + '\'' + '}';
    }
}

collectiontypebean01.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="stu" class="com.bgy.spring.collectiontype.Stu">
        <!-- 数组类型 -->
        <property name="arr">
            <array>
                <value>aimy</value>
                <value>tom</value>
            </array>
        </property>

        <!-- List集合 -->
        <property name="list">
            <list>
                <value>数据结构</value>
                <value>操作系统</value>
            </list>
        </property>

        <!-- Map集合 -->
        <property name="map">
            <map>
                <entry key="HTML" value="html"></entry>
                <entry key="JAVA" value="java"></entry>
            </map>
        </property>

        <!-- Set集合 -->
        <property name="set">
            <set>
                <value>红色</value>
                <value>绿色</value>
            </set>
        </property>

        <!-- 测试自定义类型的集合 -->
        <property name="coursesList">
            <list>
                <ref bean="courses01"></ref>
                <ref bean="courses02"></ref>
            </list>
        </property>
    </bean>


    <!-- 创建多个courses对象 -->
    <bean id="courses01" class="com.bgy.spring.collectiontype.Courses">
        <property name="cname" value="数学"></property>
    </bean>
    <bean id="courses02" class="com.bgy.spring.collectiontype.Courses">
        <property name="cname" value="英语"></property>
    </bean>
</beans>

Book.java

package com.bgy.spring.collectiontype;

import java.util.List;

public class Book {
    private List<String> list;

    public void setList(List<String> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "Book{" + "list=" + list + '}';
    }
}

collectiontypebean02.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"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <!--
        测试把集合注入部分提取出来
        需要在配置文件中引入名称空间util
    -->
    <util:list id="bookList">
        <value>大话设计模式</value>
        <value>Java核心技术卷</value>
        <value>剑锋offer</value>
    </util:list>

    <!-- 提取list集合类型属性注入使用 -->
    <bean id="book" class="com.bgy.spring.collectiontype.Book">
        <property name="list" ref="bookList"></property>
    </bean>
</beans>

TestCollectionType.java

import com.bgy.spring.collectiontype.Book;
import com.bgy.spring.collectiontype.Stu;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClasspathXmlApplicationContext;

public class TestCollectionType {

    /**
     *测试集合类型
     */
    @Test
    public void test01(){
        // 1. 加载spring配置文件
        ApplicationContext context = new ClasspathXmlApplicationContext("collectiontypebean01.xml");

        // 2. 配置文件创建对象
        Stu stu = context.getBean("stu", Stu.class);

        System.out.println(stu);
    }

    /**
     *测试注入部分提取
     */
    @Test
    public void test02(){
        // 1. 加载spring配置文件
        ApplicationContext context = new ClasspathXmlApplicationContext("collectiontypebean02.xml");

        // 2. 配置文件创建对象
        Book book = context.getBean("book", Book.class);

        System.out.println(book);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。