__フォトクレジット:
Spring Batch
はバッチ処理用のオープンソースのフレームワークで、一連のジョブを実行します。
Spring Batchは、大量のデータを処理するために、リソース、トランザクション管理、ジョブ処理統計、ジョブ再開、およびパーティション化技術を読み書きするためのクラスおよびAPIを提供します。
次のSpringバッチチュートリアルとサンプルは、次のものでテストされています。
-
Spring Core 3.2.2.RELEASE
-
Spring Batch 2.2.0.RELEASE
P.S Spring BatchはSpring Portfolioの一部です.
1.クイックガイド
単純なバッチジョブで、コマンドラインで実行します。
Hello Worldの例]+ Springバッチについての簡単な説明と、CSVファイルからデータを読み取り、処理してXMLファイル(JAXB)に書き込むジョブを作成します。
-
link://spring-batch/spring-batch-tasklet-example/[Spring Batch
TaskletStep例]バッチジョブの完了後にリソースをクリーンアップする例。
-
リンク://spring-batch/run-spring-batch-job-with-commandlinejobrunner/[Run
CommandLineJobRunnerによるSpringバッチジョブ]Springバッチジョブをコマンドラインで実行します。
2. ItemReader、ItemProcessor、ItemWriter
Springバッチクラスを使用してリソース(csv、xml、データベース)を読み書きする方法を示す例はほとんどありません。
-
link://spring-batch/spring-batch-example-csv-file-to-database/[Spring
バッチの例 – CSVファイルからMySQLデータベース]+ CSVファイルからデータを読み取り、それをMySQLデータベースに書き込むと、ジョブメタがデータベースに格納されます。
-
link://spring-batch/spring-batch-example-xml-file-to-database/[Spring
バッチの例 – MongoDBデータベースへのXMLファイル]+ XMLファイル(XStream)からデータを読み取り、それをnosqlデータベースMongoDBに書き込み、バッチジョブのユニットテストも行います。
-
link://spring-batch/spring-batch-example-xml-file-to-csv-file/[Spring
バッチの例 – CSVファイルへのXMLファイル]+ XMLファイル(JAXB2)からデータを読み取り、ItemProcessorで処理し、CSVファイルに書き込みます。また、JAXB2を介してDateデータ型とBigDecimalデータ型をオブジェクト間で変換する方法も示します。
-
link://spring-batch/spring-batch-example-mysql-database-to-xml/[Spring
バッチの例 – MySQLデータベースからXMLへ]MySQLデータベースからデータを読み取り、それをXMLファイル(XStream)に書き込んでください。また、jobParametersを使用します。
-
link://spring-batch/spring-batch-multiresourceitemreader-example/[Spring
バッチMultiResourceItemReaderの例]複数のファイルを読み込むためのItemReader。
スケジューラ
スケジューラーフレームワークでバッチジョブを実行します。
-
リンク://spring-batch/spring-batch-and-spring-taskscheduler-example/[Spring
Batch Spring TaskSchedulerの例]5秒ごとにバッチジョブを実行するようにスケジュールするSpring TaskScheduler。
-
link://spring-batch/spring-batch-and-quartz-scheduler-example/[Spring
バッチクォーツスケジューラの例]クォーツを統合して、バッチジョブが10秒ごとに実行されるようにスケジュールを設定します。
ユニットテスト
-
link://spring-batch/spring-batch-unit-test-example/[Springバッチユニット
テスト例]+バッチジョブまたは個々のステップを単体テストする方法。
5.アドバンス
-
link://spring-batch/spring-batch-partitioning-example/[Spring Batch
partitioner example]データの範囲を処理する複数のスレッド。
-
link://spring-batch/spring-batch-listeners-example/[Spring Batch
リスナーの例]+バッチ・ジョブのステップ実行をインターセプトする例
6.春バッチFAQ
Spring Batchでのよくある質問と回答
-
link://spring-batch/how-to-convert-date-in-beanwrapperfieldsetmapper/[どのようにして
BeanWrapperFieldSetMapperで日付を変換する]** link://spring-batch/spring-batch-a-job-instance-already-exist-for-parameters/[Spring
バッチ:ジョブインスタンスがすでに存在し、
パラメータ= \ {}]** link://spring-batch/spring-batch-metadata-tables-are-not-created-自動的に/[Spring
バッチメタデータテーブルは自動的に作成されませんか?]** リンク://spring-batch/nosuchbeandefinitionexception-no-qualifying-bean-of-type-joblaunchertestutils/[NoSuchBeanDefinitionException
: No qualifying bean of type JobLauncherTestUtils]** link://spring-batch/jobparameters-cannot-be-found-on-object-of-type-beanexpressioncontext/[jobParameters
BeanExpressionContext型のオブジェクト上に見つかりません]
参考文献
-
http://static.springsource.org/spring-batch/
[Springバッチ公式
ウェブサイト]**
http://static.springsource.org/spring-batch/reference/html/
[Spring
バッチリファレンスドキュメント]**
ウィキペディア:Spring Batch
バッチサンプル]