35

私は現在、データのチャンクを読み取って処理しているSpringバッチを作成しており、このデータを2人のライターに渡したいと考えています。1 つのライターは単純にデータベースを更新しますが、2 番目のライターは csv ファイルに書き込みます。

独自のカスタム ライターを作成し、customItemWriter に 2 つの itemWriter を挿入し、customItemWriter の書き込みメソッドで両方のアイテム ライターの書き込みメソッドを呼び出すことを計画しています。このアプローチは正しいですか?私の要件を満たす利用可能な ItemWriter 実装はありますか?

前もって感謝します

4

6 に答える 6

15

必ずしも例のように xml を使用する必要はありません。コードの残りの部分で注釈を使用している場合は、次のようにするだけです。

public ItemWriter<T> writerOne(){
    ItemWriter<T> writer = new ItemWriter<T>();
    //your logic here
    return writer;
}

public ItemWriter<T> writerTwo(){
    ItemWriter<T> writer = new ItemWriter<T>();
    //your logic here
    return writer;
}

public CompositeItemWriter<T> compositeItemWriter(){
    CompositeItemWriter writer = new CompositeItemWriter();
    writer.setDelegates(Arrays.asList(writerOne(),writerTwo()));
    return writer;
}
于 2016-08-26T22:39:52.993 に答える
4

君は正しかった。SB は委譲に大きく基づいているため、CompositeItemWriterを使用することは、ニーズに適した選択です。

于 2013-09-20T12:24:29.800 に答える