我有一个Reader
类看起来像这样
public class Reader {
public void read(List<String> filesToRead) {
for (String file : filesToRead) {
System.out.println(file);
}
}
}
我的App
课程如下
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
Reader reader = (Reader) context.getBean("reader");
reader.read(LIST OF STRINGS TO BE PASSED HERE);
}
}
My Beans.xml看起来像这样
<bean id="reader" class="com.mypackage.Reader"/>
我想知道是否可以使用Spring将字符串列表传递给read(List<String> files)
方法。我宁愿在Spring中执行此操作而不是在代码中创建字符串列表,因为字符串列表将来会发生变化,因此我宁愿不修改代码,只需触摸一些Spring文件。
答案 0 :(得分:1)
您可以定义java.util.ArrayList
类型的Spring bean,就像这样
<bean id="files" class="java.util.ArrayList">
<constructor-arg>
<list>
<value>fiel1</value>
<value>fiel2</value>
<value>fiel3</value>
</list>
</constructor-arg>
</bean>
在代码中使用该bean
Reader reader = (Reader) context.getBean("reader");
List<String> files = (List<String>)context.getBean("files");
reader.read(files);
答案 1 :(得分:1)
导入spring util命名空间。然后,您可以将列表bean定义为
<util:list id="myList" value-type="java.lang.String">
<value>foo</value>
<value>bar</value>
</util:list>
现在您可以将此mylist注入或自动装入reader bean。否则考虑使用
org.springframework.beans.factory.config
Class MethodInvokingFactoryBean