Spring Batchとは

今回紹介するSpring Batchは、エンタープライズレベルのバッチ処理を実現するためのフレームワークだ。

エンタープライズアプリケーションにおいて、大量のトランザクションを一括処理する「バッチ処理」は避けて通れない。Spring Batchでは、開発者が「バッチ処理」を簡単に実装するため、主に以下のような機能を提供している。

  • スケーラビリティ - マルチスレッド・マルチプロセスでの並列処理
  • データの整合性を保ち、処理順序を保障する「バッチプロセス管理」
  • バッチプロセスのトランザクション管理

バッチ処理で必要な基本的な機能はSpring Batchフレームワークに任せ、開発者はビジネスロジックの実装に注力することができる。

次にSpring Batchのモジュール構成を紹介しよう。大まかに2つのモジュールに分かれている。

 Infrastructure(基盤機能) : 再利用可能な低レベル部品を提供する

  • リピート、リトライといったバッチプロセス実行のサポート

  • フラットファイル、XML、データベースといったリソースの入出力サポート
  • トランザクション管理

 Core : バッチジョブの「起動」と「プロセス管理」を実現するためのモジュール群

2つのモジュールはSpirngFrameworkをベースに持つ。このため、SpringBatchではSpirngFrameworkの機能を利用することができる。下の図では、それぞれのモジュールの依存関係が示されている。

Spring Batchは執筆現在(2010/5)でv2.1.1がリリースされている。この記事も原則このバージョンに基づいて作成している。