您好,登錄后才能下訂單哦!
這篇“Spring IOC容器Bean管理XML注入集合類型屬性是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Spring IOC容器Bean管理XML注入集合類型屬性是什么”文章吧。
創(chuàng)建類、定義數(shù)組、list、map、set類型屬性,生成對(duì)應(yīng)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. 數(shù)組類型的屬性 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"> <!--數(shù)組類型的注入--> <property name="courses"> <array> <value>java開發(fā)課程</value> <value>數(shù)據(jù)庫課程</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>
寫一個(gè)測(cè)試類,方便測(cè)試。
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(); } }
運(yùn)行測(cè)試結(jié)果
[java開發(fā)課程, 數(shù)據(jù)庫課程] [大周, 小毛] {班長=胖洪, 采購=大周} [帥胡, 小姜] Process finished with exit code 0
在上面集合里的內(nèi)容都是用的 String,如果現(xiàn)在里面是對(duì)象,要如何注入?
ok,現(xiàn)在新增一個(gè)類 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 類里,加上這個(gè) Course 對(duì)象屬性,并且生成對(duì)應(yīng)的 set 方法:
... ... public class Student { ... ... // 5. 學(xué)生所學(xué)多門課程 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); } }
操作配置文件。
在配置文件中可以新增多個(gè) course 對(duì)象。
<!--創(chuàng)建多個(gè) Course 對(duì)象--> <bean id="course1" class="com.pingguo.spring5.collectiontype.Course"> <property name="course_name" value="胡氏面點(diǎn)課"></property> </bean> <bean id="course2" class="com.pingguo.spring5.collectiontype.Course"> <property name="course_name" value="毛氏面點(diǎn)課"></property> </bean>
然后在 注入的時(shí)候使用 ref 標(biāo)簽。
<!--注入list類型,值是對(duì)象--> <property name="courseList"> <list> <ref bean="course1"></ref> <ref bean="course2"></ref> </list> </property>
OK,現(xiàn)在運(yùn)行測(cè)試類,看下結(jié)果:
[java開發(fā)課程, 數(shù)據(jù)庫課程] [大周, 小毛] {班長=胖洪, 采購=大周} [帥胡, 小姜] [Course{course_name='胡氏面點(diǎn)課'}, Course{course_name='毛氏面點(diǎn)課'}]
注入成功。
上面集合注入的地方,當(dāng)有多個(gè)值的時(shí)候感覺還是比較麻煩的,如果可以把這部分提取出來就更好了。
<property name="courseList"> <list> <ref bean="course1"></ref> <ref bean="course2"></ref> </list> </property>
現(xiàn)在新建一個(gè)類 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); } }
為了方便,新建一個(gè) 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是怎樣運(yùn)行的</value> <value>大數(shù)據(jù)測(cè)試</value> <value>谷歌的軟件測(cè)試之道</value> </util:list>
然后,使用提取出來的集合,使用 ref 屬性。
<bean id="book" class="com.pingguo.spring5.collectiontype.Book"> <property name="list" ref="bookList"></property> </bean>
測(cè)試一下,新建一個(gè)測(cè)試方法 testCollection2() 。
@Test public void testCollection2() { ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml"); Book book = context.getBean("book", Book.class); book.test(); }
運(yùn)行測(cè)試方法:
[mysql是怎樣運(yùn)行的, 大數(shù)據(jù)測(cè)試, 谷歌的軟件測(cè)試之道] Process finished with exit code 0
注入成功。
以上就是關(guān)于“Spring IOC容器Bean管理XML注入集合類型屬性是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。