基于XML文件的方式配置Bean-bean的引用和配置集合属性

该博客主要介绍了如何在XML配置文件中进行Bean的引用和配置集合属性。内容包括Bean之间的引用,特别是级联属性的赋值,以及如何配置List和Map类型的集合属性,如使用list子节点和map子节点entry进行配置。此外,还提及了使用util命名空间来定义独立的集合,以便于其他Bean引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean的引用

在bean中可以使用ref引用外部bean为自己的属性赋值,也可以创建内部bean(内部bean不能被引用)。

<bean id="person" class="com.ustc.yi.bean.Person">
        <property name="name" value="Tom"></property>
        <property name="age" value="20"></property>

        <!--使用property的ref建立bean之间的关系 ,引用外部bean-->
        <!-- <property name="car" ref="car"></property>-->
        <!--<property name="car">
               <ref bean="car"></ref>
        </property>-->
        <!-- 使用内部bean,不需要id ,因为不能被外部引用-->
        <property name="car">
            <bean class="com.ustc.yi.bean.Car">
                <constructor-arg value="Audi"></constructor-arg>
                <constructor-arg value="武汉"></constructor-arg>
                <constructor-arg value="300000"></constructor-arg>
            </bean>
        </property>
    </bean>

在bean中为级联属性赋值

 

<bean id="person2" class="com.ustc.yi.bean.Person">
    <constructor-arg value="YI"></constructor-arg>
    <constructor-arg value="23"></constructor-arg>
    <constructor-arg ref="car1"></constructor-arg>
    <!--为级联属性赋值,属性需要先初始化(这里先要初始化car才能使用,后才能为级联属性赋值,Struts2可以自动创建 -->
    <property name="car.price" value="350000"></property>
</bean>

price是car的一个属性,首先通过ref引用一个car的bean,然后用property为引用的car1的price赋值。 


 

配置集合属性

配置List

使用list子节点为bean配置list集合

<!--配置集合属性 -->
    <bean id="person3" class="com.ustc.yi.collection.Person">
        <property name="name" value="yi"></property>
        <property name="age" value="23"></property>
        <property name="cars">
            <!-- 使用list为list集合赋值-->
            <list>
                <ref bean="car"></ref>
                <ref bean="car1"></ref>
                <bean class="com.ustc.yi.bean.Car">
                    <constructor-arg value="Ford"></constructor-arg>
                    <constructor-arg value="北京"></constructor-arg>
                    <constructor-arg value="300" type="int"></constructor-arg>
                </bean>
            </list>
        </property>
    </bean>

配置Map

使用map以及map的子节点entry为配置map

<!--配置map属性值 -->
    <bean id="person4" class="com.ustc.yi.collection.NewPerson">
        <property name="name" value="yi"></property>
        <property name="age" value="23"></property>
        <property name="cars">
            <!--使用map结点及map的entry子节点配置map集合变量 -->
            <map>
                <entry key="AA" value-ref="car"></entry>
                <entry key="BB" value-ref="car1"></entry>
            </map>
        </property>
    </bean>

另外可以使用util来配置独立的集合,以供bean引用

 <!--配置独立的集合bean,以供引用,先要引入util的包-->
    <util:list id="cars">
        <ref bean="car"></ref>
        <ref bean="car1"></ref>
    </util:list>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值