集合物件注入


對於像陣列、java.util.List、java.util.Set、java.util.Map等集合物件,在注入前必須填充入一些物件至集合 中,然後再將集合物件注入至所需的Bean中,例如若有個Bean如下:
public class SomeBean {
    private String[] someStrArray;
    private SomeObj[] someObjArray;
    private List someList;
    private Map someMap;
    ....

}

對於這個需求,Spring也可以幫您維護,直接來看Bean定義檔如何設定:
...
<beans>

    <bean id="someBean" class="onlyfun.caterpillar.SomeBean">
        <property name="someStrArray">
            <list>
                <value>Hello!Justin!</value>
                <value>Hello!Momor!</value>
                <value>Hello!Bush!</value>
            </list>
        </property>
        <property name="someObjArray">
            <list>
                <ref bean="someObj1"/>
                <ref bean="someObj2"/>
            </list>
        </property>
        <property name="someList">
            <list>
                 <value>Hello!Justin!</value>
                 <ref bean="someObj1"/>
                 <ref bean="someObj2"/>
            </list>
        </property>
        <property name="someMap">
            <map>
                 <entry key="somekey1">
                     <ref bean="someObj1"/>
                 </entry>
                 <entry key="somekey2">
                     <value>Hello!Justin!</value>
                 </entry>
            </map>
        </property>
    </bean>
</beans>

上面的Bean定義檔是個綜合示範,陣列與List物件都是用<list>標籤來設定,而Map物件使用<map>標籤設 定,並需要一個key值設定。

Set的使用<set>標籤,例如:
<set>
    <value>a set element</value>
    <ref bean="otherBean"/>
    <ref bean="anotherBean"/>
</set>

您也可以注入java.util.Properties,Bean定義檔的寫法示範如下:
....
    <bean id=....>
        ....
        <property name="someProperties">
            <props>
                <prop key="someProkey1">
                    someProValue1
                </prop>
                <prop key="someProkey2">
                    someProValue2
                </prop>
            </props>
        </property>
    </bean>