私は、各行を読み込んでdbに挿入し、ファイルに書き込む1つのバッチを処理しています。私はこれをデータベースとファイルに書きます。したがって、ClassifierCompositeItemWriter
を使用して特定の作家に電話する必要があります。私は、行を次のようしているファイルがあります。ここではオペレーションタイプに基づいて特定のライターを呼び出しますか?
DATA,I,1,John,Shiazo,Sushi
DATA,U,8,Pablo,Carmen
DATA,D,9,Diego,Sergio
DATA,I,10,rucha,rekha
が、私は挿入を意味し、Uは更新を意味し、Dは削除を表します。特定のライターを挿入するにはどのように呼び出すべきですか?その他は更新用です。もう1つは削除用です。この3人の作家は、操作(挿入、更新、削除)に基づいて別々に動作し、ファイルにデータを書き込むために常に作業するライターが1人あります。
@Classifier
public List<String> classify(Object object) {
String type = "Success";
List<String> list = new ArrayList<String>();
if(person.getOperationType().contentEquals("I")){
String insert = "I";
list.add(type);
list.add(insert);
}else if(person.getOperationType().contentEquals("U")){
String update = "U";
list.add(type);
list.add(insert);
}else{
delete = "D";
list.add(type);
list.add(delete);
}
}
サンプルのXMLライターコード:以下
は私のサンプルコードです
<bean id="classifierFileItemWriter" class="org.springframework.batch.item.support.ClassifierCompositeItemWriter" scope="step"> <property name="classifier"> <bean class="org.springframework.classify.BackToBackPatternClassifier"> <property name="routerDelegate">
<bean class="com.iz.batchprocessing.writer.SuccessFailClassifier" scope="step"/>
</property>
<property name="matcherMap">
<map>
<entry key="I" value-ref="jdbcInsertItemWriter" /> //insert writer, here I want access ArrayList
<entry key="U" value-ref="jdbcUpdateItemWriter" /> //update writer, here I want access ArrayList
<entry key="D" value-ref="jdbcDeleteItemWriter" /> //delete writer, here I want access ArrayList
<entry key="Success" value-ref="successMultiFileItemWriter" /> //common file writer
</map>
</property>
</bean>
</property> </bean>
私はこれを行うことができる方法を教えてください?あるいは、これを達成する他の方法がありますか?
このリストはどこで準備していますか?プロセッサで?なぜあなたは3人の別個の作家が必要ですか?1人の作家では3つの異なる方法が働かないのですか? –
はあなたの質問です。単に 'ClassifierCompositeItemWriter'の使い方ですか? –
いいえ、私の質問は 'ClassifierCompositeItemWriter'の使い方ではありません。私はライターの分類子でこのリストを準備しています。私は春のバッチのxml構成を使用しているので、私は春のバッチについて多くのことを知っているように、私は春のバッチでは3つの異なるメソッドを作ることができません。ご存じの場合は、サンプルコードを投稿してください。 "Success and I"や "Success and D"や "Success and U"などの分類子から複数のパラメータを送信したい。この時点でのみ、私は立ち往生しています。 – rucha