LoginSignup
3
3

More than 5 years have passed since last update.

Spring Batch

Last updated at Posted at 2018-03-02

Spring Batchとは、バッチ処理をつかさどるアプリケーションフレームワークである。Springの特徴であるDIコンテナ、AOP、トランザクション管理機能をベースに、バッチ処理を実行するうえで必要な機能を提供している。

詳細はプログラムを作りながら、追って説明していきます。

Spring Batchのプロジェクトを作る

プロジェクトを作成する

http://start.spring.io/
でひな形のアプリケーションを作ります。
依存関係に「Batch」を追加して作成します。

実行する

作成したプロジェクトをそのまま実行すると以下のようなエラーが出ます。
これは、SpringBatchがジョブの状態を管理するために、データベースを利用しているために発生するものです。

Description:

Cannot determine embedded database driver class for database type NONE

Action:

If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (no profiles are currently active).

DBの設定を追加する

とりあえず動かすことを優先して、今回はH2を使ってみます。
build.gradleに以下を追加する。

    compile('com.h2database:h2')

application.ymlの記述を追加する

spring:
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    username: sa
    password:

ここまでやれば、実行する準備は完了です。

いろいろなパターンを実装する

実装方法のパターン

Spring Batchを利用した実装方法には、以下2種類があります。

タスクレットモデル

自由に処理を記述する方式である。
基本お作法にのっとれば何でも実装できます。

チャンクモデル

大量データを効率よく処理するための機構です。
一定件数のデータをまとめて入力/加工/出力する方式。入力->加工->出力といった処理の流れを定型化し、一部を実装するだけど、ジョブを作ることができます。

起動方法のパターン

Spring Batchで実装したジョブは、いろいろな方法で起動することができます。

ジョブを指定して実行する

定期的に実行する

Webから非同期で実行する

参考サイト

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3