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

作者:牛哄哄的柯南 时间:2023-11-28 00:16:53 

注入集合(数组、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:


<?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.Keafmd.spring5.collectiontype.Stu">
   <!--数组类型属性注入-->
   <property name="courses">
     <array>
       <value>Java</value>
       <value>C++</value>
       <value>Python</value>
     </array>
   </property>

<!--list类型属性注入-->
   <property name="list">
     <list>
       <value>小明</value>
       <value>小红</value>
     </list>
   </property>

<!--map类型属性注入-->
   <property name="maps">
     <map>
       <entry key="Java" value="java"></entry>
       <entry key="C++" value="c++"></entry>
     </map>
   </property>

<!--set类型属性注入-->
   <property name="sets">
     <set>
       <value>北京</value>
       <value>上海</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.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

来源:https://blog.csdn.net/weixin_43883917/article/details/112701756

标签:Spring,注入集合
0
投稿

猜你喜欢

  • 详解C#中的委托

    2022-05-10 06:01:43
  • Javaweb 定时器功能代码实例

    2022-04-07 00:47:20
  • 详解java中static关键词的作用

    2023-12-02 00:32:00
  • C#异步编程由浅入深(二)之Async/Await的使用

    2022-10-14 16:45:20
  • Java mybatis 开发自定义插件

    2022-11-26 03:29:24
  • mybatis 集合嵌套查询和集合嵌套结果的区别说明

    2022-10-12 15:17:02
  • java如何对map进行排序详解(map集合的使用)

    2022-12-22 18:26:13
  • String类型传递是值传递,char[]类型传递是引用传递的实现

    2022-06-01 09:33:44
  • Android利用GridView实现单选效果

    2022-08-12 03:31:50
  • 浅谈Java如何实现一个基于LRU时间复杂度为O(1)的缓存

    2022-02-02 08:35:36
  • Java实现发送邮件并携带附件

    2023-07-23 19:02:25
  • C#集合遍历时删除和增加元素的方法

    2021-12-11 18:53:24
  • System.getProperty(user.dir)定位问题解析

    2023-11-20 08:50:44
  • 有关tomcat内存溢出的完美解决方法

    2023-09-18 09:02:25
  • 引入SpringCloud-gateway报错的解决方案

    2022-04-02 21:47:17
  • 关于HashMap相同key累加value的问题

    2022-02-13 13:32:18
  • Android应用创建桌面快捷方式代码

    2022-03-03 00:51:44
  • 基于C#实现手机号码归属地接口调用

    2022-07-14 09:46:54
  • Java项目中获取路径的绝对路径问题和相对路径问题

    2023-07-09 13:25:01
  • c# 自定义泛型链表类的详解

    2022-07-27 23:58:46
  • asp之家 软件编程 m.aspxhome.com