Spring5之IOC容器中IOC操作之Bean管理(三)之xml注入集合属性

1、xml注入集合属性

1.1 注入数组类型、List集合类型、Map集合类型属性

创建类、定义数组、list、map、set类型属性,生成对应set方法
Stu类

package com.example.spring5.collectiontype;

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

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 List<Course> getCourseList() {
        return 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);
    }
}


Course类

package com.example.spring5.collectiontype;

//课程类
public class Course {
    //课程名称
    private String cname;

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

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

1.2 在spring配置文件进行配置

<?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">

       <!--1 集合类型属性注入-->
       <bean id="stu" class="com.example.spring5.collectiontype.Stu">
           <!--数组类型属性注入-->
           <property name="courses">
               <array>
                   <value>java课程</value>
                   <value>数据库课程</value>
               </array>
           </property>
           <property name="list">
               <list>
                   <value>张三</value>
                   <value>小三</value>
               </list>
           </property>
           <property name="maps">
               <map>
                   <entry key="JAVA" value="java"></entry>
                   <entry key="PHP" value="php"></entry>
               </map>
           </property>
           <property name="sets">
               <set>
                   <value>MySQL</value>
                   <value>Redis</value>
               </set>
           </property>
           <!--注入list集合类型,值是对象-->
           <property name="courseList">
               <list>
                   <ref bean="course1"></ref>
                   <ref bean="course2"></ref>
               </list>
           </property>
       </bean>
       <!--创建多个course对象-->
       <bean id="course1" class="com.example.spring5.collectiontype.Course">
           <property name="cname" value="Spring5框架"></property>
       </bean>
    <bean id="course2" class="com.example.spring5.collectiontype.Course">
        <property name="cname" value="MyBatis框架"></property>
    </bean>
</beans>

1.3 测试类

package com.example.spring5;

import com.example.spring5.collectiontype.Book;
import com.example.spring5.collectiontype.Stu;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:bean1.xml")
class ListMapSetTest {

    @Test
    public void testCollection() {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean6.xml");
        Stu stu = context.getBean("stu", Stu.class);
        stu.test();
    }
}

1.4 在集合里面设置对象类型值

<?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">

       <!--1 集合类型属性注入-->
       <bean id="stu" class="com.example.spring5.collectiontype.Stu">
           <!--注入list集合类型,值是对象-->
           <property name="courseList">
               <list>
                   <ref bean="course1"></ref>
                   <ref bean="course2"></ref>
               </list>
           </property>
       </bean>
  
       <!--创建多个course对象-->
       <bean id="course1" class="com.example.spring5.collectiontype.Course">
           <property name="cname" value="Spring5框架"></property>
       </bean>
  
       <bean id="course2" class="com.example.spring5.collectiontype.Course">
            <property name="cname" value="MyBatis框架"></property>
       </bean>
  
</beans>

1.5 把集合注入部份提取出来

(1)创建Book类

package com.example.spring5.collectiontype;

import java.util.List;

public class Book {

    private List<String> list;

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

    public void test(){
        System.out.println(list);
    }
}


(2)在spring配置文件中引入名称空间util

<?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">

</beans>

(3)使用util标签完成list集合注入提取

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

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

(4)测试类

package com.example.spring5;

import com.example.spring5.collectiontype.Book;
import com.example.spring5.collectiontype.Stu;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:bean1.xml")
class ListMapSetTest {

    @Test
    public void testCollection2() {
        ApplicationContext context = new ClassPathXmlApplicationContext("util.xml");
        Book book = context.getBean("book", Book.class);
        book.test();
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊凯瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值