spring set list注入与spring的构造器注入list差不多,唯一的区别就是构造器注入list是把List参数放在<constructor-arg>标签里面,而set list注入是将list参数放在<property>标签内部,下面是一个set list注入示例。
list注入示例将涉及如下这几个类:
Question.java
applicationContext.xml
Test.java
1:新建Question.java类,该类中除了属性之外,还有一个为answers的list集合,代码如下。
package com.tpyyes;
import java.util.Iterator;
import java.util.List;
public class Question {
private int id;
private String name;
private List<String> answers;
//setters and getters方法省略
public void displayInfo(){
System.out.println(id+" "+name);
//输出answer
System.out.println("answers are:");
Iterator<String> itr=answers.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}2:新建applicationContext.xml文件,用于给answers这个list注入值,代码如下所示。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="que" class="com.tpyyes.Question"> <property name="id" value="1"></property> <property name="name" value="什么是Java?"></property> <property name="answers"> <list> <value>Java是一门计算机语言</value> <value>Java是一个组件</value> <value>Java一种咖啡</value> </list> </property> </bean> </beans>
3:新建测试类,用于初始化注入的值并新建对象,然后调用displayInfo()方法,输出我们在applicationContext.xml中注入的值,代码如下。
package com.tpyyes;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
public class Test {
public static void main(String[] args) {
Resource res=new ClassPathResource("applicationContext.xml");
BeanFactory factory=new XmlBeanFactory(res);
Question q=(Question)factory.getBean("que");
q.displayInfo();
}
}spring set注入list参数并不难,很容易看懂的。