ItemWriter

ItemWriter の機能は ItemReader に似ていますが、逆の操作があります。リソースは引き続き検索、オープン、クローズする必要がありますが、ItemWriter が読み込むのではなく書き込むという点で異なります。データベースまたはキューの場合、これらの操作は挿入、更新、送信になります。出力の直列化の形式は、各バッチジョブに固有です。

ItemReader と同様に、ItemWriter は、次のインターフェース定義に示すように、かなり汎用的なインターフェースです。

public interface ItemWriter<T> {

    void write(Chunk<? extends T> items) throws Exception;

}

ItemReader 上の read と同様に、write は ItemWriter の基本契約を提供します。開いている間は、渡されたアイテムのリストを書き出そうとします。アイテムはまとめて「バッチ処理」されてから出力されることが一般的に想定されているため、インターフェースはアイテム単体ではなく、アイテムのリストを受け入れます。リストを書き出した後、書き込みメソッドから戻る前に、必要なフラッシュ処理を実行できます。例: Hibernate DAO に書き込む場合、アイテムごとに 1 回ずつ、書き込みメソッドを複数回呼び出すことができます。その後、書き込み側は戻る前に、ハイバネイトセッションで flush を呼び出すことができます。チャンク内のすべてのアイテムが ItemProcessor によってフィルタリングされたか、フォールトトレラントステップ処理中にスキップされた場合、write に渡されるチャンクは空になる可能性があることに注意してください。実装では、空のチャンクを適切に処理することが求められます。