中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring?IOC容器Bean管理XML注入集合類型屬性是什么

發布時間:2022-05-31 09:16:27 來源:億速云 閱讀:165 作者:zzz 欄目:開發技術

這篇“Spring IOC容器Bean管理XML注入集合類型屬性是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Spring IOC容器Bean管理XML注入集合類型屬性是什么”文章吧。

一、定義數組、list、map、set類型屬性

創建類、定義數組、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);
    }
}

1. 引入名稱空間 util

為了方便,新建一個 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>

增加的地方:

Spring?IOC容器Bean管理XML注入集合類型屬性是什么

2. 使用 util 標簽完成集合注入的提取

以提取 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注入集合類型屬性是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐河县| 马龙县| 普兰店市| 六安市| 越西县| 申扎县| 东海县| 政和县| 城口县| 靖安县| 丰顺县| 定边县| 屯留县| 伊宁县| 揭东县| 饶平县| 上饶县| 卢龙县| 舒兰市| 石台县| 治县。| 东光县| 贵港市| 湟源县| 准格尔旗| 工布江达县| 德令哈市| 喀什市| 辽源市| 新泰市| 常州市| 阿荣旗| 新巴尔虎左旗| 修武县| 枣庄市| 福泉市| 嵩明县| 大同市| 六枝特区| 安阳市| 页游|