项目结构
首先是数组
<bean id="studentFive" class="com.red.spring.pojo.Student">
<property name="sid" value="1004"></property>
<property name="sname" value="赵六"></property>
<property name="age" value="26"></property>
<property name="gender" value="男"></property>
<property name="clazz" ref="clazzOne"></property>
<property name="clazz.cid" value="2222"></property>
<property name="clazz.cname" value="远大前程班"></property>
<property name="hobby">
<array>
<value>唱</value>
<value>跳</value>
<value>rap</value>
</array>
</property>
</bean>
test类运行结果
接下来是list
<bean id="clazzOne" class="com.red.spring.pojo.Clazz">
<property name="cid" value="1111"></property>
<property name="cname" value="最强王者班"></property>
<property name="students">
<!-- 内部bean赋值-->
<list>
<ref bean="studentOne"></ref>
<ref bean="studentTwo"></ref>
<ref bean="studentThree"></ref>
</list>
</property>
</bean>
运行结果
如果我们想配置一个集合类型的bean,就需要使用util的约束
<util:list id="studentList">
<ref bean="studentOne"></ref>
<ref bean="studentTwo"></ref>
<ref bean="studentThree"></ref>
</util:list>
此时idea会自动添加约束
添加前
添加后
更改配置文件,此时用ref引用类型,引用util约束的集合类型bean,id为studentList
<bean id="clazzOne" class="com.red.spring.pojo.Clazz">
<property name="cid" value="1111"></property>
<property name="cname" value="最强王者班"></property>
<property name="students" ref="studentList"></property>
<!-- 内部bean赋值-->
<!-- <list>-->
<!-- <ref bean="studentOne"></ref>-->
<!-- <ref bean="studentTwo"></ref>-->
<!-- <ref bean="studentThree"></ref>-->
<!-- </list>-->
</bean>
测试
接下来介绍map
新建teacher类
public class Teacher {
private Integer tid;
private String tname;
public Teacher() {
}
写配置文件
<property name="teacherMap">
<map>
<entry key="1006" value-ref="teacherOne"></entry>
<entry key="10001" value-ref="teacherTwo"></entry>
</map>
</property>
运行
同理也可以使用util
<util:map id="studentMap">
<entry key="10086" value-ref="teacherOne"></entry>
<entry key="10001" value-ref="teacherTwo"></entry>
</util:map>
<bean id="clazzOne" class="com.red.spring.pojo.Clazz">
<property name="cid" value="1111"></property>
<property name="cname" value="最强王者班"></property>
<property name="students" ref="studentList"></property>
<!-- <property name="teacherMap">-->
<!-- <map>-->
<!-- <entry key="1006" value-ref="teacherOne"></entry>-->
<!-- <entry key="10001" value-ref="teacherTwo"></entry>-->
<!-- </map>-->
<!-- </property>-->
<property name="teacherMap" ref="studentMap"></property>
</bean>
最后是p命名空间
<bean id="studentSix" class="com.red.spring.pojo.Clazz"
p:cid="1006"
p:cname="小小红"
p:students-ref="studentFive"
p:teacherMap-ref="studentMap">
</bean>
测试结果