<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
建立類、定義陣列、list、map、set型別屬性,生成對應set方法。
package com.pingguo.spring5.collectiontype; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; public class Student { // 1. 陣列型別的屬性 private String[] courses; // 2. list集合型別屬性 private List<String> list; // 3. map集合型別屬性 private Map<String, String> maps; // 4. set集合型別屬性 private Set<String> sets; 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); } }
<?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="student" class="com.pingguo.spring5.collectiontype.Student"> <!--陣列型別的注入--> <property name="courses"> <array> <value>java開發課程</value> <value>資料庫課程</value> </array> </property> <!--list型別的注入--> <property name="list"> <list> <value>大周</value> <value>小毛</value> </list> </property> <!--map型別的注入--> <property name="maps"> <map> <entry key="班長" value="胖洪"></entry> <entry key="採購" value="大周"></entry> </map> </property> <!--set型別的注入--> <property name="sets"> <set> <value>帥胡</value> <value>小姜</value> </set> </property> </bean> </beans>
寫一個測試類,方便測試。
package com.pingguo.spring5.testdemo; import com.pingguo.spring5.collectiontype.Student; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestSpring5Demo2 { @Test public void testCollection() { ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); Student student = context.getBean("student", Student.class); student.test(); } }
執行測試結果
[java開發課程, 資料庫課程] [大周, 小毛] {班長=胖洪, 採購=大周} [帥胡, 小姜] Process finished with exit code 0
在上面集合裡的內容都是用的 String,如果現在裡面是物件,要如何注入?
ok,現在新增一個類 Course:
package com.pingguo.spring5.collectiontype; public class Course { private String course_name; public void setCourse_name(String course_name) { this.course_name = course_name; } @Override public String toString() { return "Course{" + "course_name='" + course_name + ''' + '}'; } }
接下來,在 Student 類裡,加上這個 Course 物件屬性,並且生成對應的 set 方法:
... ... public class Student { ... ... // 5. 學生所學多門課程 private List<Course> courseList; public void setCourseList(List<Course> courseList) { this.courseList = courseList; } ... ... 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 物件。
<!--建立多個 Course 物件--> <bean id="course1" class="com.pingguo.spring5.collectiontype.Course"> <property name="course_name" value="胡氏麵點課"></property> </bean> <bean id="course2" class="com.pingguo.spring5.collectiontype.Course"> <property name="course_name" value="毛氏麵點課"></property> </bean>
然後在 注入的時候使用 ref 標籤。
<!--注入list型別,值是物件--> <property name="courseList"> <list> <ref bean="course1"></ref> <ref bean="course2"></ref> </list> </property>
OK,現在執行測試類,看下結果:
[java開發課程, 資料庫課程] [大周, 小毛] {班長=胖洪, 採購=大周} [帥胡, 小姜] [Course{course_name='胡氏麵點課'}, Course{course_name='毛氏麵點課'}]
注入成功。
上面集合注入的地方,當有多個值的時候感覺還是比較麻煩的,如果可以把這部分提取出來就更好了。
<property name="courseList"> <list> <ref bean="course1"></ref> <ref bean="course2"></ref> </list> </property>
現在新建一個類 Book 來演示:
package com.pingguo.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); } }
為了方便,新建一個 bean2.xml,在裡面先引入名稱空間 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>
增加的地方:
以提取 list 集合為例。
<!--提取 list 集合型別屬性注入--> <util:list id="bookList"> <value>mysql是怎樣執行的</value> <value>巨量資料測試</value> <value>谷歌的軟體測試之道</value> </util:list>
然後,使用提取出來的集合,使用 ref 屬性。
<bean id="book" class="com.pingguo.spring5.collectiontype.Book"> <property name="list" ref="bookList"></property> </bean>
測試一下,新建一個測試方法 testCollection2() 。
@Test public void testCollection2() { ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml"); Book book = context.getBean("book", Book.class); book.test(); }
執行測試方法:
[mysql是怎樣執行的, 巨量資料測試, 谷歌的軟體測試之道] Process finished with exit code 0
注入成功。
以上就是Spring IOC容器Bean管理XML注入集合型別屬性的詳細內容,更多關於Spring IOC Bean注入XML集合的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45