In Spring IOC framework you can define bean properties of some collection types, such as List, Set, Propertie and Map. For example, for a bean that has a property “theList” of type “java.util.ArrayList”, you can specify the value as below:
<property name="theList">
<list>
<value type="java.lang.String">a String</value>
<value type="java.lang.Interger">100</value>
</list>
</property>
</bean>
This is fine. But if the “theList” is a java.util.Vector then the above won’t work because by default the List FactoryBean uses an ArrayList and can’t convert a java.util.ArrayList to java.util.Vector– you will get a conversion exception.
It seems Spring does not support “Vector” property type directly. You have to either define a custom PropertyEditor for Vector, or, work around it with something like below:
<bean class="java.util.Vector">
<constructor-arg >
<value type="int">2</value>
</constructor-arg>
</bean>
</property>
<property name="theList[0]" >
<value type="java.lang.String">a String</value>
</property>
<property name="theList[1]" >
<value type="java.lang.Integer">100</value>
</property>
Or a better way like this:
<bean class="java.util.Vector">
<constructor-arg >
<list>
<value type="java.lang.String"> a String</value>
<value type="java.lang.Integer"> 100 </value>
</list>
</constructor-arg>
</bean>
</property>