SpringBatchで使うJob,Step,Flow,Taskletの使い方

SpringBatchで使うJob,Step,Flow,Taskletの使い方

STSでSpringBatchプロジェクトを作成してみます。

まず、「ファイル」-「新規」-「Springプロジェクト」を選択すると以下の画面が開きます。

SpringBatchプロジェクトを作成する

テンプレートに「Simple Spring Batch Project」を選択して「次へ」を押下します。

SpringBatchプロジェクトを作成する

パッケージ名を入力して「完了」です。

サンプルを起動してみます。

プロジェクトを右クリックし、「実行」ー「実行の構成」を選択します。

SpringBatchプロジェクトを作成する

メイン・クラスに「org.springframework.batch.core.launch.support.CommandLineJobRunner」と入力します。

「引数」タブで「プログラムの引数」に「classpath:/launch-context.xml job1」と入力します。

SpringBatchプロジェクトを作成する

これで「実行」を押すと、コンソールに<[Hello world!]>と表示されます。

Spring Batchのアノテーション

Spring Batchのアノテーションです。

アノテーション 意味
@EnableBatchProcessing バッチプロセスとして認識させる
@Configuration ComponentScanの対象となる
@Bean DIされる

以下、サンプルです。

Jobでステップを実行してきます。incrementer(new RunIdIncrementer())メソッドはおまじないくらいの気持ちで、必須です。

そのあとのstartメソッドでstep1が実行されて、nextメソッドでstep2が実行されます。

@Qualifier(“引数名”)は、メソッド名を指定します。上記だとメソッド名は、samplestep3とsamplestep2になります。

なのでJobでは

と指定する必要があります。

jobメソッド内で、jobBuilderFactory.get(“job名”)としていますが、job名は任意です。

job内でstepを実行し、step内でtaskletを実行します。

step内のtaskletも複数指定することができますがここでは一つずつにしています。

ATaskletの例です。

Taskletインタフェースをimplementsする必要があります。

executeメソッドを実装する必要があるので実装します。戻り値はRepeatStatusです。

StepをFlowに纏める

Stepを直列に実行することができますが、そのステップをFlowに纏めて直列に実行することができます。

Jobをフローに登録する

Jobをフローに登録することも可能です。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA