2015-02-27 4 views
0

У меня есть Reader класс, который выглядит такКак передать данные методу с использованием Spring

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); 
    } 
} 

Мои beans.xml выглядит так

<bean id="reader" class="com.mypackage.Reader"/> 

Мне интересно, возможно ли передать список строк в read(List<String> files) способ используя Spring. Я бы предпочел сделать это весной, чем создать список строк в коде, поскольку список строк изменился бы в будущем, поэтому я бы скорее не модифицировал код, а просто коснулся некоторых файлов Spring.

ответ

1

Импорт пружинный Util имен. Затем вы можете определить список компонентов как

<util:list id="myList" value-type="java.lang.String"> 
    <value>foo</value> 
    <value>bar</value> 
</util:list> 

Теперь вы можете вставить или автоповести этот mylist в bean. В противном случае рекомендуется использовать

org.springframework.beans.factory.config 
Class MethodInvokingFactoryBean 
+0

хороший ответ, но скажите мне, как мы получаем список в Java файл – Aniket

+0

При попытке создать список боб, как вы заявили, я получаю сообщение в моем IDE о том, что «Element Util: список не является разрешено здесь ». – user2844485

+0

Вы добавили пространство имен util: \t xmlns: util = "http://www.springframework.org/schema/util" и schemamlocation http://www.springframework.org/schema/util – iamiddy

1

Вы можете определить Spring боб java.util.ArrayList типа, как этот

<bean id="files" class="java.util.ArrayList"> 
    <constructor-arg> 
     <list> 
      <value>fiel1</value> 
      <value>fiel2</value> 
      <value>fiel3</value> 
     </list> 
    </constructor-arg> 
</bean> 

И использовать этот компонент в коде

Reader reader = (Reader) context.getBean("reader"); 
List<String> files = (List<String>)context.getBean("files"); 
reader.read(files); 
Смежные вопросы