spring中xml里的集合属性

在Spring中可以通过一组内置的XML标签来配置集合属性,例如:< list>
< map>和< set>。

数组和List

配置java.util.List类型的属性,需要指定< list>标签,在标签里包含一些元素。这些标签 可以通过< value>指定简单的常量值,通过< ref>指定对其他Bean的引用。通过< bean>指定内置bean定义。通过< null/>指定空元素。甚至可以内嵌其他集合。
数组的定义和List一样,都使用< list>元素。
配置java.util.Set需要使用< set>标签,定义的方法与List一样。

如字面量lisi时:

<bean id="t1" class="com.atguigu.spring.test.Teacher">
        <property name="tid" value="10011"></property>
        <property name="tname" value="卡密尔"></property>
        <property name="cls">
            <list>
               <value>A</value>
               <value>哈哈哈</value>
                <value>sdasdsadas</value>
            </list>
        </property>
    </bean>

或者list集合是引用数据类型时:

<bean id="s1" class="com.atguigu.spring.test.Student">
        <property name="id" value="1001"></property>
        <property name="name" value="亚索"></property>
        <property name="age" value="35"></property>
        <property name="cellphone" value="17623232323"></property>
    </bean>

    <bean id="s2" class="com.atguigu.spring.test.Student">
        <constructor-arg value="1002"></constructor-arg>
        <constructor-arg value="瑞文"></constructor-arg>
        <constructor-arg value="28" index="2" type="java.lang.Integer"></constructor-arg>
        <constructor-arg value="17823237878"></constructor-arg>

    </bean>

    <bean id="s3" class="com.atguigu.spring.test.Student"
          p:id="1003"
          p:name="盖伦"
          p:age="25"
          p:cellphone="19823918932">

    </bean>

    <bean id="s4" class="com.atguigu.spring.test.Student">
        <property name="id" value="1004"></property>
        <property name="name" value="ez"></property>
        <property name="age" value="26"></property>
        <property name="cellphone" value="18926267575"></property>
        <property name="teacher" ref="teacher"></property>
    </bean>

<bean id="t2" class="com.atguigu.spring.test.Teacher">
        <property name="tid" value="10012"></property>
        <property name="tname" value="杰斯"></property>
        <property name="students">
            <list>
                <ref bean="s1"/>
                <ref bean="s2"/>
                <ref bean="s3"></ref>
                <ref bean="s4"/>
            </list>
        </property>

    </bean>

Map
Java.util.Map通过< map>标签定义,< map>标签里可以使用多个< entry>作为子标签。每个条目包含一个键和一个值。
必须在< key>标签里定义键。
因为键和值的类型没有限制,所以可以自由地为它们指定< value>、< ref>、< bean>或< null/>元素。
可以将Map的键和值作为< entry>的属性定义:简单常量使用key和value来定义;bean引用通过key-ref和value-ref属性定义。

<bean id="t3" class="com.atguigu.spring.test.Teacher">
        <property name="tid" value="10015"></property>
        <property name="tname" value="青钢影"></property>
        <property name="bossmap">
            <map>
                <entry>
                    <key>
                        <value>1001</value>
                    </key>
                    <value>基兰</value>
                </entry>
                <entry>
                    <key>
                        <value>1002</value>
                    </key>
                    <value>斯维因</value>
                </entry>
            </map>
        </property>
    </bean>

集合类型的bean
如果只能将集合对象配置在某个bean内部,则这个集合的配置将不能重用。我们需要 将集合bean的配置拿到外面,供其他bean引用。
配置集合类型的bean需要引入util名称空间

在这里插入图片描述

<util:list id="students">
            <ref bean="s1"/>
            <ref bean="s2"/>
            <ref bean="s3"/>
            <ref bean="s4"/>
    </util:list>
<bean id="t4" class="com.atguigu.spring.test.Teacher">
        <property name="tid" value="10020"></property>
        <property name="tname" value="永恩"></property>
        <property name="students" ref="students"></property>
    </bean>

<util:map id="map">
        <entry>
            <key>
                <value>101010</value>
            </key>
            <value>张三</value>
        </entry>
        <entry>
            <key>
                <value>101020</value>
            </key>
            <value>李四</value>
        </entry>
    </util:map>
<bean id="t5" class="com.atguigu.spring.test.Teacher">
        <property name="tid" value="10030"></property>
        <property name="tname" value="艾瑞利亚"></property>
        <property name="bossmap" ref="map"></property>
    </bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值