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>