Spring Batchを使えるようにするには? (準備編) | Java Springの逆引きメモ

Java Springの逆引きメモ

JavaのSpring frameworkのメモを書いていきます!
初心者の勉強ノートなので間違いがあるかもしれませんが、何かヒントになることがあれば幸いです。

Spring Batchを使用できる状態にするにはどのような準備が必要でしょうか?

それを簡単に見ていこうと思いますビックリマーク



【準備】

以下のことする必要があります。

バージョンはこの記事を書くに当たって試してみたものを記述しています。


 1.ライブラリのダウンロード

   Spring Batchを使用するには以下のライブラリをダウンロードしてプロジェクトに入れます。

   このくらいあればだいたい動くと思います。(色々やってみて足りないときは順次追加してください!)

    ・antlr-2.7.5.jar

    ・asm-all-2.2.3.jar

    ・aspectjrt.jar

    ・aspectjweaver.jar

    ・cglib-nodep-2.1_3.jar
    ・commons-beanutils-1.8.0.jar

    ・commons-collections-3.2.1.jar
    ・commons-dbcp-1.2.2.jar

    ・commons-digester-1.8.jar
    ・commons-io-1.1.jar
    ・commons-lang-2.3.jar
    ・commons-logging.jar
    ・commons-pool-1.5.jar
    ・commons-validator-1.3.1.jar
    ・log4j-1.2.16.jar
    ・spring-2.5.6.jar
    ・spring-context-2.5.6.jar
    ・spring-core-2.5.6.jar
    ・spring-test-2.5.6.jar
    ・spring-batch-core-2.1.2.RELEASE.jar
    ・spring-batch-infrastructure-2.1.2.RELEASE.jar
    ・spring-batch-test-2.1.2.RELEASE.jar
    ・xstream-1.3.1.jar
    ・jettison-1.0.1.jar
    ・junit-4.4.jar

    ・hsqldb.jar (2.0.0) ←DBを使用したくない場合や、サンプルを動かしたい場合に使用



 2.DBの作成

   Spring Batchは前回の記事で見ましたように実行結果の保存先が必要でそれはDBになります。

   必要なテーブルを作成しましょう!


   実は、JARファイルの中にcreate table文が入ってます。

   Spring BatchのJARファイルの中をeclipseか、解凍ソフトで解凍して以下のパスを見てみてください。


     org/springframework/batch/core/

             schema-hsqldb.sql

             schema-mysql.sql

             schema-oracle10g.sql

             schema-postgeresql.sql      などなど    


   スキーマは上記のようにいろいろ用意されています!


   ファイルを開いてそれぞれのDBで実行するだけです!



【説明】

簡単な説明を記述しておきます。


1.SpringBatchでは、宣言的トランザクション管理を使用したり、処理結果などをJSON形式で保存したり

 しているようです。

 そのため、xstreamや、cglibなどのライブラリも必要になります。


 ちなみに、hsqldbは純正Java製のDBです。

 ダウンロードしたSpringBatch(2.1.2)を解凍するとサンプルが出てきます。

 その中を検索すると以下のクラスがあります。

   test.jdbc.datasource.DataSourceInitializer


 このクラスはテスト用のクラスで、SpringでDIされたときにafterPropertiesSet()内で、HSQLDB内に

 create tableします。つまり、テスト用に起動のたびに必要なテーブルを作ってくれます。


 <補足>

 ちなみに、テストのためであれば保存先をメモリ上にすることができるクラスもあります。


  org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean

 こういったクラスもうまく使って動作実験してみましょう!




2.スキーマについて

 スキーマについては特に記述することがありません。。

 すみません。

 こちらを参照ください。


  http://static.springsource.org/spring-batch/reference/html/metaDataSchema.html




これで多分、サンプルなども動くかと思います。




参考:

・トップ

・SpringBatch機能について