注入集合属性
1.常见属性
首先在给出集合属性,并且生成了对应的set的方法的前提下。我们来进行注入
<bean id="stu" class="comspring5.Stu">
<!--数组类型属性注入-->
<property name="courses">
<array>
<value>java</value>
<value>python</value>
</array>
</property>
<!--list 类型属性注入-->
<property name="list">
<list>
<value>张三</value>
<value>小三</value>
</list>
</property>
<!--map 类型属性注入-->
<property name="maps">
<map>
<entry key="JAVA" value="java"></entry>
<entry key="PHP" value="php"></entry>
</map>
</property>
<!--set 类型属性注入-->
<property name="sets">
<set>
<value>MySQL</value>
<value>Redis</value>
</set>
</property>
这里说明了四种常见类型的集合。array集合类型。list集合类型。map集合类型。set集合类型。这里的注入大同小异,只需要注意对应的标签即可,知识map对应的值有key和value被含有在entry的标签里,这里需要注意
2、注入对象属性
当注入对象属性的时候采用的是类似于外部bean的那种链接方式。这里以list来举例说明。
<bean id="course1" class="com.spring5.Course">
<property name="cname" value="java"></property>
</bean>
<bean id="course2" class="com.spring5.Course">
<property name="cname" value="python"></property>
</bean>
<!--注入 list 集合类型,值是对象-->
<property name="courseList">
<list>
<ref bean="course1"></ref>
<ref bean="course2"></ref>
</list>
</property>
明显,这里在list下面就是ref标签,通过这个标签把外部的对象属性注入到集合里面。
3、提取集合注入部分
提取集合的注入部分,也就是说把集合里面的内容提取出来,放在一个单独的空间里,,那么当其他空间也要用集合里面这部分的内容的时候,就可以直接调用。这大大增加了一致性,并且有一定成都的解耦。
第一步:引用名称空间util。这里与前面的p空间不同的是,这里不仅仅要配置xmlns。还要对xsi进行配置。
第二步、使用配置好的util标签进行注入提取。
<util:list id="books">
<value>java</value>
<value>pathon</value>
<value>c++</value>
</util:list>
<!--2 提取 list 集合类型属性注入使用-->
<bean id="book" class="com.spring5.Book">
<property name="list" ref="books"></property>
</bean>
同样,这里的ref也要与外部引用util下的id保持一致