Spring如何实现数组、List、Map、Set等集合类型属性的自动注入?

2026-04-19 17:103阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1319个文字,预计阅读时间需要6分钟。

Spring如何实现数组、List、Map、Set等集合类型属性的自动注入?

java// 注入集合类型属性(数组、List、Map、Set)类属性,并生成对应的方法public class CollectionTypeProperties { private List list; private Map map; private Set set;

// Getters and Setters public List getList() { return list; }

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

public Map getMap() { return map; }

public void setMap(Map map) { this.map=map; }

public Set getSet() { return set; }

Spring如何实现数组、List、Map、Set等集合类型属性的自动注入?

public void setSet(Set set) { this.set=set; }

// 对应的Set方法 public void addToList(String item) { list.add(item); }

public void addToMap(String key, String value) { map.put(key, value); }

public void addToSet(String item) { set.add(item); }}

// 在Spring配置文件中进行配置

Item1 Item2 ItemA ItemB

注入集合(数组、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="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="www.springframework.org/schema/beans 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="www.springframework.org/schema/util"和www.springframework.org/schema/util 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="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:util="www.springframework.org/schema/util" xsi:schemaLocation="www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd www.springframework.org/schema/util 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注入集合(数组、List、Map、Set)类型属性的文章就介绍到这了,更多相关Spring注入集合内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计1319个文字,预计阅读时间需要6分钟。

Spring如何实现数组、List、Map、Set等集合类型属性的自动注入?

java// 注入集合类型属性(数组、List、Map、Set)类属性,并生成对应的方法public class CollectionTypeProperties { private List list; private Map map; private Set set;

// Getters and Setters public List getList() { return list; }

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

public Map getMap() { return map; }

public void setMap(Map map) { this.map=map; }

public Set getSet() { return set; }

Spring如何实现数组、List、Map、Set等集合类型属性的自动注入?

public void setSet(Set set) { this.set=set; }

// 对应的Set方法 public void addToList(String item) { list.add(item); }

public void addToMap(String key, String value) { map.put(key, value); }

public void addToSet(String item) { set.add(item); }}

// 在Spring配置文件中进行配置

Item1 Item2 ItemA ItemB

注入集合(数组、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="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="www.springframework.org/schema/beans 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="www.springframework.org/schema/util"和www.springframework.org/schema/util 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="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:util="www.springframework.org/schema/util" xsi:schemaLocation="www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd www.springframework.org/schema/util 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注入集合(数组、List、Map、Set)类型属性的文章就介绍到这了,更多相关Spring注入集合内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!