1. 程式人生 > >配置spring的配置list,map,set,props集合屬性

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

在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");