詳解Spring注入集合(數組、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 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 class='com.Keafmd.spring5.collectiontype.Course'> <property name='cname' value='Spring5框架'></property> </bean> <bean 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 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注入集合內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
