Spring Batch その5
今回もSpring Batch の続きです。
今回は、やっとJob本体の作成と実行です。
Step
まず、Jobを構成するするStepを作成します。
@Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Step csv2dbStep() { return stepBuilderFactory .get("csv2dbStep") .<AddressDto, MstAddress>chunk(1000) .reader(addressReader()) .processor(csvToModelItemProcessor()) .writer(addressWriter()) .build(); }
Stepは、StepBuilderFactory を利用して作成します。
chunk(1000)とは、ItemReaderが読み取ったデータを何件毎にItemWriterに渡すかを指定しています。
reader、processor、writerには、ここまでに作成してきた処理を指定しています。
Job
やっとここまできました!
Jobを作成します。
@Autowired private JobBuilderFactory jobBuilderFactory; @Bean public Job csv2dbJob() { return jobBuilderFactory .get("csv2dbJob") .flow(csv2dbStep()) .end() .build(); }
Jobは、JobBuilderFactory を利用して作成します。
flowに作成したStep を指定しています。
これで、Job→Step→ItemReader、ItemProcessor、ItemWriterとつながりました。
実行
これ をダウンロードと解凍し、CSV_FILE_PATH の場所に配置します。
STSの実行の構成を開き、左ペインからJava アプリケーションを選択、右クリックメニューから新規を選択する
表示した画面に以下の設定を行い、実行ボタンを押下する
メインタブ
プロジェクト
spring-batch-sample
メイン・クラス
org.springframework.batch.core.launch.support.CommandLineJobRunner
引数タブ
プログラム引数
jp.tokyo.higashimurayama.tohnaman.batch.jobs.csv2db.Csv2dbJob01Config csv2dbJob data=2016/12/31 num=1
コンソールウィンドウに出力されたログにExceptionが発生していないと成功です。
main.sqliteのMST_ADDRESSに東村山の住所だけ登録されているはず
最後はやっつけではありますが、一応書ききることができました。
まだ、やり残していることがあるので、継続していこうと思います