配置spring的配置list,map,set,props集合属性

来源:互联网 发布:成都 大数据 招聘 编辑:程序博客网 时间:2024/06/05 09:33

在spring中,可以通过一组内置的xml标签(<list>,<set>,<map>) 配置集合的属性,在配置java.util.List类型的属性的时候,需要制定<list>标签,在标签里包含一些元素,这些标签可以通过<value>指定简单的常量值,通过<ref>指定对其他Bean的引用,通过<bean>指定内置bean的定义。集合也可以嵌套集合。数组的定义和list一样,都使用<list>.<set>和list类似。

Map的特殊性,key-value在map中可以使用<entry>作为子标签,每个条目包含一个key和value.

<!-- 测试集合属性 -->

<bean id="car" class="com.my.beans.Car">

<property name="brand" value="baoma"></property>
<property name="maxSpeed" value="250.0"></property>
<property name="price">
<value>300000</value>
</property>
</bean>
<bean id="car1" class="com.my.beans.Car">
<property name="brand" value="benchi"></property>
<property name="maxSpeed" value="300.0"></property>
<property name="price">
<value>600000</value>
</property>
</bean
>

每个people有多个car,需要用在people中声明List<Car>cars;属性。和对应的getset方法

<bean id="collection" class="com.my.beans.People">
<property name="name" value="lisi" ></property>
<!-- value都用引号括起 -->
<property name="age" value="33"></property>
<!--在设置list集合值的时候,需要用到list标签作为value ,在list里面引用每个car对象 -->
<property name="cars">
<list>
<!-- 引用的是已经创建的car对象 -->
<ref bean="car" />
<ref bean="car1"/>
</list>
</property>

</bean>

**********************************

private Map<String,Car> cars;

<!-- 配置map属性 -->
<bean id="map" class="com.my.beans.People2">
<property name="age" value="22"></property>
<property name="name" value="lisis"></property>
<property name="cars">
<!-- 配置map节点,用entry作为内置的赋值方式,key-valued 形式 -->
<!--使用value-ref car类型对象-->
<map>
<entry key="AA" value-ref="car"></entry>
<entry key="AB" >
<!-- 使用内置bean作为key的value对象 -->
<bean class="com.my.beans.Car">
<property name="brand" value="ford"></property>
<property name="maxSpeed" value="66"></property>
<property name="price" value="33333"></property>
</bean>
</entry>
</map>
</property>
</bean>


***********************

配置属性文件的操作:<props>

properties 间接是map的子类,所有,prop的配和map类似:

private Properties prop;
public Properties getProp() {
return prop;
}
public void setProp(Properties prop) {
this.prop = prop;
}

演示为properties属性赋值配置,用于得到数据库的配置信息等:private Properties prop;

<!-- 为prop属性赋值 -->
<bean id="prop" class="com.my.beans.DataSource">
<property name="prop">
<!-- 给prop赋值的时候通过prop标签实现, -->
<props>
<prop key="user" >root</prop>
<prop key="password" >root</prop>
<prop key="url" >jdbc:mysql://locahost:3306/test</prop>
<prop key="driver" >com.my.jdbc.Driver</prop>
</props>
</property>
</bean>

DataSource d=(DataSource) context.getBean("prop");




1 0