Spring Batch MultiResourceItemReaderの例
このチュートリアルでは、複数のリソース(複数のcsvファイル)からアイテムを読み取り、アイテムを単一のcsvファイルに書き込む方法を示します。
使用するツールとライブラリ
-
メーベン3
-
Eclipse 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
を使用して1つずつ読み取ります。
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
に一致するリソースを読み取り、それを単一のcvsファイルdomain.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"); } }
出力。 3つのcsvファイルのコンテンツが読み取られ、1つの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 kb)