我的处理器中有一些逻辑,因此我需要决定是否需要在TableA(WriterA)或TableB(writer)中编写项目
例如Item
已提交type
,并且类型可以具有A or B
的值,并且基于type
提交的值,我需要确定我需要在哪个表中写入数据。
答案 0 :(得分:1)
这可以通过使用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();
}
}