Пример Spring Batch MultiResourceItemReader
В этом руководстве мы покажем вам, как читать элементы из нескольких ресурсов (несколько файлов CSV) и записывать элементы в один файл CSV.
Использованные инструменты и библиотеки
-
Maven 3
-
Затмение 4.2
-
JDK 1.6
-
Spring Core 3.2.2.RELEASE
-
Spring Batch 2.2.0.RELEASE
P.S This example – 3 CSV files (reader) – combine into a single CSV file (writer).
1. Структура каталога проекта
Просмотрите окончательную структуру проекта, стандартный проект Maven.

2. Несколько файлов CSV
Есть 3 файла csv, позже мы будем использоватьMultiResourceItemReader, чтобы читать их один за другим.
csv/inputs/domain-1-3-2013.csv
1,facebook.com 2,yahoo.com 3,google.com
csv/inputs/domain-2-3-2013.csv
200,example.com 300,stackoverflow.com 400,oracle.com
csv/inputs/domain-3-3-2013.csv
999,eclipse.org 888,baidu.com
3. Весенние партии рабочих мест
Задание для чтения ресурсов, соответствующих этому шаблонуcsv/inputs/domain-*.csv, и записи их в один файл cvsdomain.all.csv.
resources/spring/batch/jobs/job-read-files.xml
resources/spring/batch/config/context.xml
4. Запустить его
Создайте класс Java и запустите пакетное задание.
App.java
package com.example;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
App obj = new App();
obj.run();
}
private void run() {
String[] springConfig = { "spring/batch/jobs/job-read-files.xml" };
ApplicationContext context = new ClassPathXmlApplicationContext(springConfig);
JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
Job job = (Job) context.getBean("readMultiFileJob");
try {
JobExecution execution = jobLauncher.run(job, new JobParameters());
System.out.println("Exit Status : " + execution.getStatus());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Done");
}
}
Выход. Содержимое трех CSV-файлов читается и объединяется в один CSV-файл.
csv/outputs/domain.all.csv
1,facebook.com 2,yahoo.com 3,google.coms 200,example.com 300,stackoverflow.com 400,oracle.com 999,eclipse.org 888,baidu.com
Скачать исходный код
Скачать -SpringBatch-MultiResourceItemReader-Example.zip (12 кб)