Spring注入集合(数组、List、Map、Set)类型属性

目录

  • 注入集合(数组、List、Map、Set)类型属性
  • 把集合注入部分提取出来

注入集合(数组、List、Map、Set)类型属性

(1)创建类,定义数组,list,map,set类型属性,并且生成对应的set方法。
(2)在spring配置文件中进行配置。

Stu类:

package com.Keafmd.spring5.collectiontype;

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

/**
 * Keafmd
 *
 * @ClassName: Stu
 * @Description:  IOC操作Bean管理(xml注入属性集合)
 * @author: 牛哄哄的柯南
 * @date: 2021-01-15 14:15
 */
public class Stu {
     

    //1、数组类型属性
    private String[] courses;

    //2、list集合类型属性
    private List<String> list;

    //3、map集合类型属性
    private Map<String,String> maps;

    //4、set集合类型属性
    private Set<String> sets;


    //学生所学的多门课程
    private List<Course> courseList;

    public void setCourseList(List<Course> courseList) {
     
        this.courseList = courseList;
    }

    public void setCourses(String[] courses) {
     
        this.courses = courses;
    }

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

    public void setMaps(Map<String, String> maps) {
     
        this.maps = maps;
    }

    public void setSets(Set<String> sets) {
     
        this.sets = sets;
    }

    public void test(){
     
        System.out.println(Arrays.toString(courses));
        System.out.println(list);
        System.out.println(maps);
        System.out.println(sets);
        System.out.println(courseList);
    }

}

bean1.xml:


<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.Keafmd.spring5.collectiontype.Stu">
        
        <property name="courses">
            <array>
                <value>Javavalue>
                <value>C++value>
                <value>Pythonvalue>
            array>
        property>

        
        <property name="list">
            <list>
                <value>小明value>
                <value>小红value>
            list>
        property>

        
        <property name="maps">
            <map>
                <entry key="Java" value="java">entry>
                <entry key="C++" value="c++">entry>
            map>
        property>

        
        <property name="sets">
            <set>
                <value>北京value>
                <value>上海value>
            set>
        property>

        
        <property name="courseList">
            <list>
                <ref bean="course1">ref>
                <ref bean="course2">ref>
            list>
        property>


    bean>


    
    <bean id="course1" class="com.Keafmd.spring5.collectiontype.Course">
        <property name="cname" value="Spring5框架">property>
    bean>

    <bean id="course2" class="com.Keafmd.spring5.collectiontype.Course">
        <property name="cname" value="MyBatis框架">property>
    bean>


beans>

测试类:

package com.Keafmd.spring5.testdemo;

import com.Keafmd.spring5.bean.Orders;
import com.Keafmd.spring5.collectiontype.Book;
import com.Keafmd.spring5.collectiontype.Course;
import com.Keafmd.spring5.collectiontype.Stu;
import com.Keafmd.spring5.factorybean.MyBean;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Keafmd
 *
 * @ClassName: TestSpring5demo1
 * @Description: 测试类
 * @author: 牛哄哄的柯南
 * @date: 2021-01-15 14:30
 */
public class TestSpring5demo1 {
     

    @Test
    public void testCollection1(){
     

        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        Stu stu = context.getBean("stu",Stu.class);
        stu.test();


    }

}

输出结果:

[Java, C++, Python]
[小明, 小红]
{
     Java=java, C++=c++}
[北京, 上海]
[Course{
     cname='Spring5框架'}, Course{
     cname='MyBatis框架'}]

Process finished with exit code 0

把集合注入部分提取出来

(1)在spring配置文件中引入名称空间util(
在配置信息中添加xmlns:util="http://www.springframework.org/schema/util"http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd")。
(2)提取list集合类型属性注入。
(3)把提取的list集合类型属性注入使用。

Book类:

package com.Keafmd.spring5.collectiontype;

import java.util.List;

/**
 * Keafmd
 *
 * @ClassName: Book
 * @Description:
 * @author: 牛哄哄的柯南
 * @date: 2021-01-15 14:56
 */
public class Book {
     
    private List<String> list;

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

bean2.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">

    <!--把集合注入部分提取出来-->

    <!--1、提取list集合类型属性注入-->
    <util:list id="bookList">
        <value>老人与海</value>
        <value>平凡的世界</value>
        <value>阿甘正传</value>
    </util:list>

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

</beans>

测试代码:

package com.Keafmd.spring5.testdemo;

import com.Keafmd.spring5.bean.Orders;
import com.Keafmd.spring5.collectiontype.Book;
import com.Keafmd.spring5.collectiontype.Course;
import com.Keafmd.spring5.collectiontype.Stu;
import com.Keafmd.spring5.factorybean.MyBean;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Keafmd
 *
 * @ClassName: TestSpring5demo1
 * @Description: 测试类
 * @author: 牛哄哄的柯南
 * @date: 2021-01-15 14:30
 */
public class TestSpring5demo1 {
     

    @Test
    public void testCollection2(){
     

        ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml");
        Book book = context.getBean("book",Book.class);
        book.test();

    }

}

输出结果:

[老人与海, 平凡的世界, 阿甘正传]

Process finished with exit code 0

以上就是Spring注入集合类型属性的全部内容。

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端的话,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

Spring注入集合(数组、List、Map、Set)类型属性_第1张图片

加油!

共同努力!

Keafmd

你可能感兴趣的:(Spring5,spring,bean)