付録 A: ItemReader および ItemWriter のリスト

アイテムリーダー

表 1: 利用可能なアイテムリーダー
アイテムリーダー 説明

AbstractItemCountingItemStreamItemReader

ItemReader から返されたアイテムの数をカウントすることにより、基本的な再起動機能を提供する抽象基本クラス。

AggregateItemReader

アイテムとしてリストを配信する ItemReader。注入された ItemReader のオブジェクトを、コレクションとしてパックする準備ができるまで保存します。このクラスは、レコード境界を識別できるカスタム ItemReader のラッパーとして使用する必要があります。カスタムリーダーは、true をクエリメソッド isHeader() および isFooter() に応答する AggregateItem を返すことにより、レコードの開始と終了をマークする必要があります。このリーダーは、Spring Batch が提供するリーダーのライブラリの一部ではなく、spring-batch-samples のサンプルとして提供されていることに注意してください。

AmqpItemReader

Spring AmqpTemplate を指定すると、同期受信メソッドが提供されます。receiveAndConvert() メソッドを使用すると、POJO オブジェクトを受け取ることができます。

KafkaItemReader

Apache Kafka トピックからメッセージを読み取る ItemReader。同じトピックの複数のパーティションからメッセージを読み取るように構成できます。このリーダーは、再起動機能をサポートするために、実行コンテキストにメッセージオフセットを保存します。

FlatFileItemReader

フラットファイルから読み取ります。ItemStream および Skippable 機能が含まれています。FlatFileItemReader を参照してください。

HibernateCursorItemReader

HQL クエリに基づいてカーソルから読み取ります。Cursor-based ItemReader を参照してください。

HibernatePagingItemReader

ページ分割された HQL クエリからの読み取り

ItemReaderAdapter

ItemReader インターフェースにクラスを適合させます。

JdbcCursorItemReader

JDBC を介してデータベースカーソルから読み取ります。Cursor-based ItemReader を参照してください。

JdbcPagingItemReader

SQL ステートメントを指定すると、行をページングして、メモリを使い果たすことなく大きなデータセットを読み取ることができます。

JmsItemReader

Spring JmsOperations オブジェクトと、エラーを送信する JMS 宛先または宛先名を指定すると、挿入された JmsOperations#receive() メソッドを通じて受信したアイテムを提供します。

JpaPagingItemReader

JPQL ステートメントを使用して、行をページングし、メモリを使い果たすことなく大きなデータセットを読み取れるようにします。

ListItemReader

リストから 1 つずつアイテムを提供します。

MongoItemReader

MongoOperations オブジェクトと JSON ベースの MongoDB クエリを指定すると、MongoOperations#find() メソッドから受け取ったアイテムを提供します。

Neo4jItemReader

Neo4jOperations オブジェクトと Cyhper クエリのコンポーネントを指定すると、Neo4jOperations.query メソッドの結果としてアイテムが返されます。

RepositoryItemReader

Spring Data PagingAndSortingRepository オブジェクト、Sort、実行するメソッドの名前を指定すると、Spring Data リポジトリ実装によって提供されるアイテムを返します。

StoredProcedureItemReader

データベースストアドプロシージャの実行から生じるデータベースカーソルから読み取ります。StoredProcedureItemReader を参照

StaxEventItemReader

StAX を介して読み取ります。StaxEventItemReader を参照してください。

JsonItemReader

Json ドキュメントからアイテムを読み取ります。JsonItemReader を参照してください。

アイテムライター

表 2: 利用可能なアイテムライター
アイテムライター 説明

AbstractItemStreamItemWriter

ItemStream および ItemWriter インターフェースを組み合わせた抽象基本クラス。

AmqpItemWriter

Spring AmqpTemplate を指定すると、同期 send メソッドが提供されます。convertAndSend(Object) メソッドを使用すると、POJO オブジェクトを送信できます。

CompositeItemWriter

ItemWriter オブジェクトの挿入された List の各 write メソッドにアイテムを渡します。

FlatFileItemWriter

フラットファイルに書き込みます。ItemStream およびスキップ可能機能が含まれています。FlatFileItemWriter を参照してください。

GemfireItemWriter

GemfireOperations オブジェクトを使用すると、削除フラグの構成に基づいて、アイテムが Gemfire インスタンスに書き込まれるか、Gemfire インスタンスから削除されます。

HibernateItemWriter

このアイテムライターは Hibernate セッションに対応しており、「hibernate に対応していない」アイテムライターが知る必要のないトランザクション関連の作業を処理し、実際の書き込みを行うために別のアイテムライターに委譲します。

ItemWriterAdapter

ItemWriter インターフェースにクラスを適合させます。

JdbcBatchItemWriter

PreparedStatement のバッチ機能を使用し(使用可能な場合)、flush の間に障害を見つけるための基本的な手順を実行できます。

JmsItemWriter

JmsOperations オブジェクトを使用して、アイテムは JmsOperations#convertAndSend() メソッドを介してデフォルトキューに書き込まれます。

JpaItemWriter

このアイテムライターは JPA EntityManager に対応しており、「JPA に対応していない」 ItemWriter が知る必要のないトランザクション関連の作業を処理してから、実際の書き込みを行うために別のライターに委譲します。

KafkaItemWriter

KafkaTemplate オブジェクトを使用して、Converter を使用して KafkaTemplate#sendDefault(Object, Object) メソッドを使用してアイテムからキーをマップし、アイテムをデフォルトトピックに書き込みます。削除フラグを設定して、削除イベントをトピックに送信することもできます。

MimeMessageItemWriter

Spring の JavaMailSender を使用すると、型 MimeMessage のアイテムがメールメッセージとして送信されます。

MongoItemWriter

MongoOperations オブジェクトを指定すると、アイテムは MongoOperations.save(Object) メソッドを介して書き込まれます。実際の書き込みは、トランザクションがコミットされる前の最後の瞬間まで遅延します。

Neo4jItemWriter

Neo4jOperations オブジェクトを指定すると、ItemWriter’s 構成ごとに、アイテムは save(Object) メソッドを通じて永続化されるか、delete(Object) を通じて削除されます。

PropertyExtractingDelegatingItemWriter

AbstractMethodInvokingDelegator を拡張し、その場で引数を作成します。引数は、フィールド名の挿入された配列に基づいて、処理されるアイテムのフィールドから値を取得することによって(SpringBeanWrapper を介して)作成されます。

RepositoryItemWriter

Spring Data CrudRepository 実装の場合、アイテムは構成で指定された方法で保存されます。

StaxEventItemWriter

Marshaller 実装を使用して各アイテムを XML に変換し、StAX を使用して XML ファイルに書き込みます。

JsonFileItemWriter

JsonObjectMarshaller 実装を使用して各アイテムを Json に変換し、Json ファイルに書き込みます。