1 2 3 4 5 6 7 8 9
|
<bean id="listExample" class="com.xtuer.beans.CollectionHolder"> <property name="list"> <list> <value>Gut</value> <value>Good</value> <value>没问题</value> </list> </property> </bean>
|
上面的方式注入 List,List 的类型不受我们控制,默认是 java.util.ArrayList。ListFactoryBean 可以创建一个特定类型的 List。由于 ListFactoryBean 的配置太过麻烦,这里我们只介绍和其等效的 <util:list>
。
spring-beans.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="listExample" class="com.xtuer.beans.CollectionHolder"> <property name="list"> <util:list list-class="java.util.LinkedList"> <value>Gut</value> <value>Good</value> <value>没问题</value> </util:list> </property> </bean> </beans>
|
- 需要引入 util schema。
- 可以不指定
list-class
,这样就和默认的 <list>
注入没有什么区别了。
ListFactoryBeanTest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
import com.xtuer.beans.CollectionHolder; import com.xtuer.util.CommonUtils; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class { private static ApplicationContext context;
@BeforeClass public static void setup() { context = new ClassPathXmlApplicationContext("spring-beans.xml"); }
@Test public void test() { CollectionHolder holder = context.getBean("listExample", CollectionHolder.class); CommonUtils.output(holder.getList()); CommonUtils.output(holder.getList().getClass()); } }
|
输出
1 2 3 4 5 6
|
[ "Gut", "Good", "没问题" ] "java.util.LinkedList"
|
近期评论