簡體   English   中英

在春季批處理中有條件地將數據發送給多個作者

[英]Conditionally send data to multiple writers in spring batch

我的處理器中有一些邏輯,因此我需要決定是否需要在TableA(WriterA)或TableB(writer)中編寫項目

例如, Item具有歸檔type並且類型可以具有A or B值,並且基於歸檔type值,我需要確定我需要在哪個表中寫入數據。

這可以通過使用Classifier來實現。 以下是配置:

作家 -作家將設置Classifer來決定我們需要使用哪個作家。 基於classfiter的輸出將決定作者。

@Bean
public ItemWriter<Pojo> itemWriter() {
    BackToBackPatternClassifier classifier = new BackToBackPatternClassifier();
    classifier.setRouterDelegate(new MyClassifier());
    classifier.setMatcherMap(new HashMap<String, ItemWriter<? extends Pojo>>() {
        {
            put("A", WriterA);
            put("B", WriterB);

        }
    });
    ClassifierCompositeItemWriter<Pojo> writer = new ClassifierCompositeItemWriter<Pojo>();
    writer.setClassifier(classifier);
    return writer;      
}

分類

public class MyClassifier {

    @Classifier
    public String classify(Pojo Pojo) {
        return Pojo.getType();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM