spring中关于集合的配置方式
spring的配置依赖注入是我们看到了它给以自动name和value来配置基本的数据类型,如果不是基本的数据类型该咋办??
一般的不是基本类型的属性有这些类型:集合类型,引用类型,数组
一,引用类型的依赖配置,如果我们在Property标签中配置name属性的内容为引用类型,会有另一个属性ref为我们配置引用类型。
例子:
<bean id="address" class="com.hoperun.spring1.Address">
<property name="province" value="dd"></property>
<property name="city" value="ffff"></property>
<property name="county" value="ggg"></property>
</bean>
<bean id="student" class="com.hoperun.spring1.Student">
<property name="id" value="22"></property>
<property name="name" value="fengwei"></property>
<property name="age" value="66"></property>
<property name="address" ref="address"></property>
</bean>
上面的例子中student类中有一个address的引用类型,在配置其属性是肯定不能用value,用ref来将类型指定为相应类型的bean,在任何时候,只要是引用类型,都通过ref属性来配置。
二,数组的配置
<bean id="address" class="com.hoperun.spring1.Address">
<property name="province" value="dd"></property>
<property name="city" value="ffff"></property>
<property name="county" value="ggg"></property>
</bean>
<bean id="persion" class="com.hoperun.spring1.Persion">
<property name="name" value="aa"></property>
<property name="addresses">
<array>
<ref bean="address"/>
<ref bean="address"/>
</array>
</property>
</bean>
同样的,在配置property标签时,如果属性是一个数组类型,在其子标签中会有一个Array子标签,在子标签内配置数组对应类型,如果是基本类型,用value子标签来配置。如果是引用类型,用ref子标签,如果是集合,会有想数组一样的集合标签类配置,set,list,map。
三.集合的配置
集合的配置其实上面我们已经提到过了,和数组一样,在Property的子标签中会有set。list。map子标签。然后再在集合的子标签下会有ref,value,子标签,只需一步一步的配置就可以了。
例子:
<bean id="address" class="com.hoperun.spring1.Address">
<property name="province" value="dd"></property>
<property name="city" value="ffff"></property>
<property name="county" value="ggg"></property>
</bean>
<bean id="people" class="com.hoperun.spring1.People">
<property name="addressesList">
<list>
<ref bean="address"/>
<ref bean="address"/>
</list>
</property>
<property name="addressesSet">
<set>
<ref bean="address"/>
<ref bean="address"/>
</set>
</property>
<property name="addressMap">
<map>
<entry key="address1" value-ref="address">
</entry>
<entry key="address2" value-ref="address"></entry>
</map>
</property>
</bean>
上面的例子中可以看到,配置set,list是和数组没有差别,但是在配置map是需要注意一个map类是由许多的entry组成的,所以map的子标签中有个entry,entry标签才有key和value。从这里我们就猜到了map集合的实现是封装了entry的。map的key和value特性是来至于entry。