Spring-batch-quick-guide
Spring Batch-概要
- バッチ処理*は、ユーザーの操作なしで一連の自動化された複雑なジョブを実行する処理モードです。 バッチプロセスはバルクデータを処理し、長時間実行されます。
いくつかのエンタープライズアプリケーションは、関連する操作を実行するために巨大なデータを処理する必要があります-
- 定期的な計算などの時間ベースのイベント。
- 大規模なデータセットで繰り返し処理される定期的なアプリケーション。
- トランザクション方式で利用可能なデータの処理と検証を扱うアプリケーション。
したがって、エンタープライズアプリケーションでは、このようなトランザクションを実行するためにバッチ処理が使用されます。
Spring Batchとは
Springバッチは、エンタープライズアプリケーションで使用される*バッチアプリケーション*の開発に使用される*軽量フレームワーク*です。
バルク処理に加えて、このフレームワークはのための機能を提供します-
- ロギングとトレースを含む
- トランザクション管理
- ジョブ処理統計
- ジョブの再起動
- スキップおよびリソース管理
分割手法を使用して、スプリングバッチアプリケーションをスケーリングすることもできます。
Spring Batchの機能
以下は、Spring Batchの注目すべき機能です-
- 柔軟性-Spring Batchアプリケーションは柔軟性があります。 アプリケーションでの処理の順序を変更するには、XMLファイルを変更するだけです。
- 保守性-Spring Batchアプリケーションは保守が簡単です。 Spring Batchジョブにはステップが含まれており、他のステップに影響を与えることなく、各ステップを分離、テスト、および更新できます。
- スケーラビリティ-分割テクニックを使用して、Spring Batchアプリケーションをスケーリングできます。 これらの手法により、次のことが可能になります-
- ジョブのステップを並行して実行します。
- 単一のスレッドを並列で実行します。
- 信頼性-障害が発生した場合、ステップを分離することにより、停止した場所からジョブを再開できます。
- 複数のファイル形式のサポート-Spring Batchは、XML、フラットファイル、CSV、MYSQL、Hibernate、JDBC、Mongo、Neo4jなどの多数のリーダーとライターのサポートを提供します。
- ジョブを起動する複数の方法-Webアプリケーション、Javaプログラム、コマンドラインなどを使用してSpring Batchジョブを起動できます。
これらに加えて、Spring Batchアプリケーションはサポートします-
- 失敗後の自動再試行。
- バッチ実行中およびバッチ処理完了後のステータスと統計の追跡。
- 並行ジョブを実行します。
- ロギング、リソース管理、スキップ、処理の再開などのサービス。
Spring Batch-環境
この章では、Eclipse IDEでSpring Batch環境を設定する方法について説明します。 インストールを続行する前に、システムにEclipseがインストールされていることを確認してください。 そうでない場合は、システムにEclipseをダウンロードしてインストールします。
Eclipseの詳細については、リンク:/eclipse/index [Eclipse Tutorial。]を参照してください。
EclipseでのSpring Batchの設定
以下の手順に従って、EclipseでSpring Batch環境を設定します。
- ステップ1 *-Eclipseをインストールし、次のスクリーンショットに示すように新しいプロジェクトを開きます。
- ステップ2 *-以下に示すように、サンプルのSpring Batchプロジェクトを作成します。
ステップ3 *-プロジェクトを右クリックして、以下に示すようにMavenプロジェクトに変換します。 Mavenプロジェクトに変換すると、 *Pom.xml が提供され、必要な依存関係について言及する必要があります。 その後、それらの jar ファイルが自動的にプロジェクトにダウンロードされます。
ステップ4 *-次に、プロジェクトの *pom.xml で、次のコンテンツ(Spring Batchアプリケーションの依存関係)をコピーして貼り付け、プロジェクトを更新します。
最後に、Mavenの依存関係を観察すると、必要なすべての jar ファイルがダウンロードされていることがわかります。
Spring Batch-アーキテクチャ
以下は、Spring Batchのアーキテクチャを図で表したものです。 図に示すように、アーキテクチャには3つの主要コンポーネント、つまり*アプリケーション、バッチコア*、および*バッチインフラストラクチャ*が含まれています。
アプリケーション-このコンポーネントには、すべてのジョブと、Spring Batchフレームワークを使用して記述したコードが含まれています。
バッチインフラストラクチャ-このコンポーネントには、アプリケーションコンポーネントとバッチコアコンポーネントの両方で使用されるリーダー、ライター、およびサービスが含まれています。
Spring Batchのコンポーネント
次の図は、Spring Batchのさまざまなコンポーネントと、それらが互いにどのように接続されているかを示しています。
Job
Spring Batchアプリケーションでは、ジョブは実行されるバッチプロセスです。 中断することなく、最初から最後まで実行されます。 このジョブはさらにステップに分割されます(またはジョブにはステップが含まれます)。
XMLファイルまたはJavaクラスを使用して、Spring Batchでジョブを構成します。 次に、Spring BatchのジョブのXML設定を示します。
バッチジョブは、タグ<job> </job>内で構成されます。 id という名前の属性があります。 これらのタグ内で、ステップの定義と順序を定義します。
再起動可能-一般に、ジョブが実行されているときに、再起動しようとすると、再起動*と見なされ、再起動されます。 これを回避するには、以下に示すように *restartable 値を false に設定する必要があります。
Step
- ステップ*は、ジョブを定義および実行するために必要な情報(その部分)を含むジョブの独立した部分です。
図で指定されているように、各ステップはItemReader、ItemProcessor(オプション)、ItemWriterで構成されています。 ジョブには1つ以上のステップが含まれる場合があります。
リーダー、ライター、およびプロセッサー
- itemリーダー*は特定のソースからSpring Batchアプリケーションにデータを読み込みますが、 item writer はSpring Batchアプリケーションから特定の宛先にデータを書き込みます。
アイテムプロセッサ*は、スプリングバッチに読み込まれたデータを処理する処理コードを含むクラスです。 アプリケーションが *"n" レコードを読み取る場合、プロセッサ内のコードは各レコードで実行されます。
リーダーとライターが指定されていない場合、 tasklet はSpringBatchのプロセッサとして機能します。 単一のタスクのみを処理します。 たとえば、MySQLデータベースからデータを読み取り、それを処理してファイル(フラット)に書き込む単純なステップを含むジョブを作成する場合、ステップは次を使用します-
- MySQLデータベースから読み取る*リーダー*。
- フラットファイルに書き込む*ライター*。
- 希望どおりにデータを処理する*カスタムプロセッサ*。
Spring Batchは readers と writers の長いリストを提供します。 これらの事前定義されたクラスを使用して、それらのBeanを定義できます。 *読者*と*作家*については、今後の章で詳しく説明します。
JobRepository
Spring Batchのジョブリポジトリは、JobLauncher、Job、およびStepの実装にCreate、Retrieve、Update、Delete(CRUD)操作を提供します。 以下に示すように、XMLファイルでジョブリポジトリを定義します。
インメモリリポジトリ-Spring Batchのドメインオブジェクトをデータベースに保持したくない場合は、以下に示すようにjobRepositoryのインメモリバージョンを設定できます。
JobLauncher
JobLauncherは、指定されたパラメーターセット*でSpring Batchジョブを起動するインターフェイスです。 *SampleJoblauncher は、 JobLauncher インターフェイスを実装するクラスです。 JobLauncherの構成は次のとおりです。
JobInstance
JobInstanceの実行が失敗した場合、同じJobInstanceを再度実行できます。 したがって、各JobInstanceは複数のジョブを実行できます。
JobExecutionおよびStepExecution
JobExecutionとStepExecutionは、ジョブ/ステップの実行の表現です。 これらには、開始時刻(ジョブ/ステップの)、終了時刻(ジョブ/ステップの)などのジョブ/ステップの実行情報が含まれます。
Spring Batch-アプリケーション
このチュートリアルのほとんどすべての例には、次のファイルが含まれています-
- 構成ファイル(XMLファイル)
- タスクレット/プロセッサ(Javaクラス)
- セッターとゲッターを持つJavaクラス(Javaクラス(bean))
- マッパークラス(Javaクラス)
- ランチャークラス(Javaクラス)
構成ファイル
構成ファイル(XML)には次が含まれています-
- job および step 定義。
- readers および writers を定義するBean。
- JobLauncher、JobRepository、Transaction Manager、Data Sourceなどのコンポーネントの定義。
例では、理解を深めるために、これを job.xml ファイル(ジョブ、ステップ、リーダー、ライターを定義)と context.xml ファイル(ジョブランチャー、ジョブリポジトリ、トランザクションマネージャー、情報源)。
マッパークラス
マッパークラスは、リーダーに応じて、 row mapper 、 field set mapper などのインターフェイスを実装します。 リーダーからデータを取得し、 setter および getter メソッド(Java Bean)を使用してJavaクラスに設定するコードが含まれています。
Java Beanクラス
タスクレット/プロセッサ
Tasklet/processorクラスには、Spring Batchアプリケーションの処理コードが含まれています。 プロセッサは、読み取られたデータを含むオブジェクトを受け入れ、処理し、処理されたデータを(フォームオブジェクトで)返すクラスです。
ランチャークラス
このクラス(App.java)には、Spring Batchアプリケーションを起動するコードが含まれています。
Spring Batch-設定
Spring Batchアプリケーションの作成中に、Spring Batch名前空間で提供されるXMLタグを使用して、ジョブ、ステップ、JobLauncher、JobRepository、Transaction Manager、リーダー、ライターを構成します。 したがって、以下に示すように、XMLファイルにこの名前空間を含める必要があります。
次のセクションでは、Spring Batchネームスペースで使用可能なさまざまなタグ、その属性、および例について説明します。
Job
このタグは、SpringBatchのジョブを定義/構成するために使用されます。 これには一連のステップが含まれており、JobLauncherを使用して起動できます。
このタグには、次の2つの属性があります-
S.No | Attribute & Description |
---|---|
1 |
Id ジョブのIDです。この属性に値を指定することは必須です。 |
2 |
restartable これは、ジョブが再起動可能かどうかを指定するために使用される属性です。 この属性はオプションです。 |
以下は、SpringBatchのジョブのXML構成です。
Step
このタグは、SpringBatchジョブのステップを定義/構成するために使用されます。 次の3つの属性があります-
S.No | Attribute & Description |
---|---|
1 |
Id ジョブのIDです。この属性に値を指定することは必須です。 |
2 |
next 次のステップを指定するショートカットです。 |
3 |
parent 構成の継承元の親Beanの名前を指定するために使用されます。 |
以下は、SpringBatchのステップのXML構成です。
チャンク
このタグは、 tasklet のチャンクを定義/構成するために使用されます。 次の4つの属性があります-
S.No | Attribute & Description |
---|---|
1 |
reader アイテムリーダーBeanの名前を表します。 タイプ org.springframework.batch.item.ItemReader の値を受け入れます。 |
2 |
writer アイテムリーダーBeanの名前を表します。 タイプ org.springframework.batch.item.ItemWriter の値を受け入れます。 |
3 |
processor アイテムリーダーBeanの名前を表します。 タイプ org.springframework.batch.item.ItemProcessor の値を受け入れます。 |
4 |
commit-interval トランザクションをコミットする前に処理されるアイテムの数を指定するために使用されます。 |
次に、SpringBatchのチャンクのXML構成を示します。
JobRepository
JobRepository Beanは、リレーショナルデータベースを使用してJobRepositoryを構成するために使用されます。 このBeanは、 org.springframework.batch.core.repository.JobRepository 型のクラスに関連付けられています。
S.No | Attribute & Description |
---|---|
1 |
dataSource データソースを定義するBean名の指定に使用されます。 |
2 |
transactionManager transactionmanagerを定義するBeanの名前を指定するために使用されます。 |
3 |
databaseType ジョブリポジトリで使用されるリレーショナルデータベースのタイプを指定します。 |
次に、JobRepositoryの構成例を示します。
JobLauncher
JobLauncher Beanを使用して、JobLauncherを構成します。 これは、クラス org.springframework.batch.core.launch.support.SimpleJobLauncher (プログラム内)に関連付けられています。 このBeanには jobrepository という名前のプロパティが1つあり、 jobrepository を定義するBeanの名前を指定するために使用されます。
以下は、jobLauncherの構成例です。
TransactionManager
TransactionManager Beanは、リレーショナルデータベースを使用してTransactionManagerを構成するために使用されます。 このBeanは、 org.springframework.transaction.platform.TransactionManager タイプのクラスに関連付けられています。
情報源
データソースBeanは、データソース*の構成に使用されます。 このBeanは、 *org.springframework.jdbc.datasource.DriverManagerDataSource タイプのクラスに関連付けられています。
S.No | Attribute & Description |
---|---|
1 |
driverClassName これは、データベースとの接続に使用されるドライバーのクラス名を指定します。 |
2 |
url これは、データベースのURLを指定します。 |
3 |
username これは、データベースに接続するためのユーザー名を指定します。 |
4 |
password これは、データベースに接続するためのパスワードを指定します。 |
以下は datasource の設定例です。
Spring Batch-リーダー、ライター、プロセッサー
- アイテムリーダー*は特定のソースからスプリングバッチアプリケーションにデータを読み込み、*アイテムライター*はスプリングバッチアプリケーションから特定の宛先にデータを書き込みます。
- アイテムプロセッサ*は、スプリングバッチに読み込まれたデータを処理する処理コードを含むクラスです。 アプリケーションがn個のレコードを読み取ると、プロセッサ内のコードが各レコードで実行されます。
チャンク*は *tasklet の子要素です。 読み取り、書き込み、および処理操作を実行するために使用されます。 以下に示すステップ内で、この要素を使用してリーダー、ライター、およびプロセッサーを構成できます。
Spring Batchは、MongoDB、Neo4j、MySQL、XML、フラットファイル、CSVなどのさまざまなファイルシステム/データベースからデータを読み書きするリーダーとライターを提供します。
アプリケーションにリーダーを含めるには、そのリーダーのBeanを定義し、Bean内のすべての必須プロパティに値を提供し、そのようなBeanの id をチャンク要素 readerの属性に値として渡す必要があります。 (*作家*と同じ)。
ItemReader
データを読み取るのは、(バッチプロセスの)ステップのエンティティです。 ItemReaderは、一度に1つのアイテムを読み取ります。 Spring Batchはインターフェース ItemReader を提供します。 すべての*リーダー*がこのインターフェースを実装しています。
以下は、さまざまなソースから読み取るために、Spring Batchが提供する定義済みのItemReaderクラスの一部です。
Reader | Purpose |
---|---|
FlatFIleItemReader | To read data from flat files. |
StaxEventItemReader | To read data from XML files. |
StoredProcedureItemReader | To read data from the stored procedures of a database. |
JDBCPagingItemReader | To read data from relational databases database. |
MongoItemReader | To read data from MongoDB. |
Neo4jItemReader | To read data from Neo4jItemReader. |
Beanを作成して ItemReaders を構成する必要があります。 以下は、XMLファイルからデータを読み取る StaxEventItemReader の例です。
観察したように、構成中に、必要なリーダーのそれぞれのクラス名を指定する必要があり、すべての必要なプロパティに値を提供する必要があります。
ItemWriter
これは、データを書き込むバッチプロセスの step の要素です。 ItemWriterは、一度に1つのアイテムを書き込みます。 Spring Batchはインターフェース ItemWriter を提供します。 すべてのライターがこのインターフェイスを実装しています。
以下は、Spring Batchがさまざまなソースから読み取るために提供する事前定義済みItemWriterクラスの一部です。
Writer | Purpose |
---|---|
FlatFIleItemWriter | To write data into flat files. |
StaxEventItemWriter | To write data into XML files. |
StoredProcedureItemWriter | To write data into the stored procedures of a database. |
JDBCPagingItemWriter | To write data into relational databases database. |
MongoItemWriter | To write data into MongoDB. |
Neo4jItemWriter | To write data into Neo4j. |
同様に、Beanを作成してItemWriterを構成する必要があります。 以下は、MySQLデータベースにデータを書き込む JdbcCursorItemReader の例です。
アイテムプロセッサー
- Taskletクラス*- reader および writer が指定されていない場合、TaskletはSpringBatchのプロセッサとして機能します。 単一のタスクのみを処理します。
パッケージ org.springframework.batch.item.ItemProcessor のインターフェイス ItemProcessor を実装することにより、カスタムアイテムプロセッサを定義できます。 このItemProcessorクラスはオブジェクトを受け入れ、データを処理し、処理されたデータを別のオブジェクトとして返します。
バッチプロセスでは、 "n" レコードまたはデータ要素が読み取られると、各レコードについて、データを読み取り、処理し、ライターにデータを書き込みます。 データを処理するには、渡されたプロセッサで中継します。
たとえば、特定のPDFドキュメントを読み込み、新しいページを作成し、データ形式を表形式でPDFに書き込むためのコードを記述したとします。 このアプリケーションを実行すると、XMLドキュメントからすべてのデータ項目が読み取られ、MySQLデータベースに保存され、個々のページの指定されたPDFドキュメントに印刷されます。
例
以下は、ItemProcessorクラスのサンプルです。
Spring Batch-基本アプリケーション
この章では、基本的なSpring Batchアプリケーションについて説明します。 tasklet を実行してメッセージを表示するだけです。
私たちのSpring Batchアプリケーションには、次のファイルが含まれています-
- 構成ファイル-これは、ジョブとジョブのステップを定義するXMLファイルです。 (アプリケーションにリーダーとライターも含まれる場合、 readers と writers の構成もこのファイルに含まれます。)
- Context.xml -このファイルでは、ジョブリポジトリ、ジョブランチャー、トランザクションマネージャーなどのBeanを定義します。
- * Taskletクラス*-このクラスでは、処理コードジョブを記述します(この場合、簡単なメッセージを表示します)
- * Launcherクラス*-このクラスでは、ジョブランチャーを実行してバッチアプリケーションを起動します。
jobConfig.xml
サンプルのSpring Batchアプリケーションの設定ファイルは次のとおりです。
Context.xml
以下は、Spring Batchアプリケーションの context.xml です。
Tasklet.java
以下は、簡単なメッセージを表示するTaskletクラスです。
App.java
以下は、バッチ処理を実行するコードです。
実行すると、上記のSpringBatchプログラムは次の出力を生成します-
Spring Batch-XMLからMySQL
この章では、XMLリーダーとMySQLライターを使用するSpring Batchアプリケーションを作成します。
以下は、このアプリケーションで使用している入力XMLドキュメントです。 このドキュメントには、チュートリアルID、チュートリアル作成者、チュートリアルタイトル、提出日、チュートリアルアイコン、チュートリアルの説明などの詳細を指定するデータレコードが含まれています。
プロセッサ-アプリケーションで使用しているプロセッサは、PDFドキュメントに各レコードのデータを書き込むカスタムプロセッサです。
バッチ処理では、 "n" レコードまたはデータ要素が読み取られた場合、各レコードについて、データを読み取り、処理し、ライターにデータを書き込みます。 データを処理するには、渡されたプロセッサで中継します。 この場合、カスタムプロセッサクラスでは、特定のPDFドキュメントをロードし、新しいページを作成し、データ形式を表形式でPDFに書き込むコードを作成しました。
最後に、このアプリケーションを実行すると、XMLドキュメントからすべてのデータ項目が読み取られ、MySQLデータベースに保存され、特定のPDFドキュメントの個々のページに印刷されます。
jobConfig.xml
サンプルのSpring Batchアプリケーションの設定ファイルは次のとおりです。 このファイルでは、ジョブとステップを定義します。 これらに加えて、ItemReader、ItemProcessor、ItemWriterのBeanも定義します。 (ここでは、それらをそれぞれのクラスに関連付け、必要なプロパティの値を渡して設定します。)
Context.xml
以下は、Spring Batchアプリケーションの context.xml です。 このファイルでは、ジョブリポジトリ、ジョブランチャー、トランザクションマネージャーなどのBeanを定義します。
CustomItemProcessor.java
以下は processor クラスです。 このクラスでは、アプリケーションで処理のコードを記述します。 ここでは、PDFドキュメントをロードし、新しいページを作成し、テーブルを作成し、各レコードに次の値を挿入しています:チュートリアルID、チュートリアル名、作成者、テーブル内の提出日。
TutorialFieldSetMapper.java
以下は、データをチュートリアルクラスに設定するReportFieldSetMapperクラスです。
Tutorial.java
以下は Tutorial クラスです。 これは、 setter および getter メソッドを持つ単純なクラスです。
App.java
以下は、バッチ処理を実行するコードです。 このクラスでは、JobLauncherを実行してバッチアプリケーションを起動します。
このアプリケーションを実行すると、次の出力が生成されます。
データベースの details.tutorial テーブルを確認すると、次の出力が表示されます-
tutorial _id | tutorial _author | tutorial _title | submission _date | tutorial _icon | tutorial _description |
---|---|---|---|---|---|
1001 | Sanjay | Learn Java | 06-05-2007 | https://www.tutorials point.com/java/images/java-mini-logo.jpg | Java is a high-level programming language originally developed by Sun Microsystems and released in 1995. Java runs on a variety of platforms. This tutorial gives a complete understanding of Java. |
1002 | Abdul S | Learn MySQL | 19-04-2007 | https://www. finddevguides.com/mysql/images/mysql-minilogo.jpg | MySQL is the most popular Open Source Relational SQL database management system. MySQL is one of the best RDBMS being used for developing web-based software applications. This tutorial will give you quick start with MySQL and make you comfortable with MySQL programming. |
1003 | Learn JavaFX | Krishna Kasyap | 06-07-2017 | https://www. finddevguides.com/javafx/images/javafx-minilogo.jpg | MySQL is the most popular Open Source Relational SQL database management system. MySQL is one of the best RDBMS being used for developing web-based software applications. This tutorial will give you quick start with MySQL and make you comfortable with MySQL programming. |
これにより、以下に示すように各ページのレコードを含むPDFが生成されます。
Spring Batch-CSVからXML
この章では、CSVリーダーとXMLライターを使用する簡単なSpring Batchアプリケーションを作成します。
以下は、このアプリケーションで使用している入力CSVファイルです。 このドキュメントには、チュートリアルID、チュートリアル作成者、チュートリアルタイトル、提出日、チュートリアルアイコン、チュートリアルの説明などの詳細を指定するデータレコードが含まれています。
プロセッサ-アプリケーションで使用しているプロセッサは、CSVファイルから読み取ったレコードを印刷するだけのカスタムプロセッサです。
jobConfig.xml
サンプルのSpring Batchアプリケーションの設定ファイルは次のとおりです。 このファイルでは、ジョブとステップを定義します。 これらに加えて、ItemReader、ItemProcessor、ItemWriterのBeanも定義します。 (ここでは、それらをそれぞれのクラスに関連付け、必要なプロパティの値を渡して設定します。)
Context.xml
以下は、Spring Batchアプリケーションの context.xml です。 このファイルでは、ジョブリポジトリ、ジョブランチャー、トランザクションマネージャーなどのBeanを定義します。
CustomItemProcessor.java
プロセッサクラスは次のとおりです。 このクラスでは、アプリケーションで処理のコードを記述します。 ここでは、各レコードの内容を印刷しています。
TutorialFieldSetMapper.java
以下は、データをTutorialクラスに設定するTutorialFieldSetMapperクラスです。
Tutorial.javaクラス
以下は Tutorial クラスです。 これは、 setter および getter メソッドを持つ単純なJavaクラスです。 このクラスでは、アノテーションを使用して、このクラスのメソッドをXMLファイルのタグに関連付けています。
App.java
以下は、バッチプロセスを起動するコードです。 このクラスでは、JobLauncherを実行してバッチアプリケーションを起動します。
このアプリケーションを実行すると、次の出力が生成されます。
これにより、次の内容のXMLファイルが生成されます。
Spring Batch-MySQLからXML
この章では、MySQLリーダーとXMLライターを使用するSpring Batchアプリケーションを作成します。
以下に示すように、MySQLデータベースにテーブルを作成したとします-
次のレコードを挿入したとします。
プロセッサ-アプリケーションで使用しているプロセッサは、CSVファイルから読み取ったレコードを印刷するだけのカスタムプロセッサです。
jobConfig.xml
サンプルのSpring Batchアプリケーションの設定ファイルは次のとおりです。 このファイルでは、ジョブとステップを定義します。 これらに加えて、ItemReader、ItemProcessor、ItemWriterのBeanも定義します。 (ここでは、それらをそれぞれのクラスに関連付け、必要なプロパティの値を渡して設定します。)
Context.xml
以下は、Spring Batchアプリケーションの context.xml です。 このファイルでは、ジョブリポジトリ、ジョブランチャー、トランザクションマネージャーなどのBeanを定義します。
CustomItemProcessor.java
プロセッサクラスは次のとおりです。 このクラスでは、アプリケーションで処理のコードを記述します。 ここでは、各レコードの内容を印刷しています。
TutorialRowMapper.java
以下は、データを Tutorial クラスに設定する TutorialRowMapper クラスです。
Tutorial.java
以下は Tutorial クラスです。 これは、 setter および getter メソッドを持つ単純なJavaクラスです。 このクラスでは、アノテーションを使用して、このクラスのメソッドをXMLファイルのタグに関連付けています。
App.java
以下は、バッチ処理を実行するコードです。 このクラスでは、JobLauncherを実行してバッチアプリケーションを起動します。
このアプリケーションを実行すると、次の出力が生成されます。
これにより、次の内容のXMLファイルが生成されます。
Spring Batch-MySQLからフラットファイル
この章では、MySQL Readerと Flatfile Writer(.txt)を使用するSpring Batchアプリケーションを作成します。
以下に示すように、MySQLデータベースにテーブルを作成したと仮定します。
次のレコードを挿入したとします。
プロセッサ-アプリケーションで使用しているプロセッサは、CSVファイルから読み取ったレコードを印刷するだけのカスタムプロセッサです。
jobConfig.xml
サンプルのSpring Batchアプリケーションの設定ファイルは次のとおりです。 このファイルでは、ジョブとステップを定義します。 これらに加えて、ItemReader、ItemProcessor、ItemWriterのBeanも定義します。 (ここでは、それらをそれぞれのクラスに関連付け、必要なプロパティの値を渡して設定します。)
Context.xml
以下は、Spring Batchアプリケーションの context.xml です。 このファイルでは、ジョブリポジトリ、ジョブランチャー、トランザクションマネージャーなどのBeanを定義します。
CustomItemProcessor.java
プロセッサクラスは次のとおりです。 このクラスでは、アプリケーションで処理のコードを記述します。 ここでは、各レコードの内容を印刷しています。
TutorialRowMapper.java
以下は、データを Tutorial クラスに設定する TutorialRowMapper クラスです。
Tutorial.java
以下は Tutorial クラスです。 これは、 setter および getter メソッドを持つ単純なJavaクラスです。 このクラスでは、アノテーションを使用して、このクラスのメソッドをXMLファイルのタグに関連付けています。
App.java
以下は、バッチ処理を実行するコードです。 このクラスでは、JobLauncherを実行してバッチアプリケーションを起動します。
このアプリケーションを実行すると、次の出力が生成されます。
これにより、次の内容の .txt ファイルが生成されます。