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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值