今回は、SpringBatchについて解説します。
SpringBatchとは
『Spring』と名の付く通りですが、Springの機能を搭載したバッチアプリケーション向けのフレームワークです。基本的には、Javaのアプリケーションですが、開発を効率的に進めるための様々な機能が搭載されています。
SpringBatchの特徴
開発者にとって便利な機能をフレームワークが提供してくれていますが、代表的な機能として以下が挙げられます。
- Job管理
- トランザクション管理
Job管理
SpringBatchには、『Job』という概念があります。SpringBatchはそれぞれの機能を組み合わせてアプリケーションを構築し、Jobはその単位です。
※Jobの中にもStepという単位が存在します
Job1を実行したらJob2を実行、Job1が失敗していたらJob3を実行するといった実装を設定レベルで定義することが可能であり、1つあたりの機能に対する実装が必然的にシンプルとなります。
また、拡張する際にはJobを追加することで、既存処理に対する改修を極力少なくすることができます。
小さなパーツから先に固めてしまい、後でそれを組み合わせるといったイメージです。
トランザクション管理
SpringBatchは自動的にデータベースへ管理用のテーブルを作成し、処理の実行状態をデータとして保管しています。
これにより、バッチ処理の実行に失敗した場合、処理の再開地点を検出できたり、データのロールバックをフレームワーク処理にて実行することができます。
処理の異常終了により、データを復元しなくてはならなかったり、再度実行(リラン)した際にどこの処理から再開すればよいのかといった部分について、複雑な制御を実装する必要が無いのです。