Java 在spring批处理中有条件地向多个写入程序发送数据
我的处理器中有一些逻辑,根据这些逻辑,我需要决定是否需要在TableA WriterA或TableBwriter中写入项Java 在spring批处理中有条件地向多个写入程序发送数据,java,spring,spring-boot,spring-batch,batch-processing,Java,Spring,Spring Boot,Spring Batch,Batch Processing,我的处理器中有一些逻辑,根据这些逻辑,我需要决定是否需要在TableA WriterA或TableBwriter中写入项 e、 g项具有归档类型,类型可以具有值A或B,根据归档类型中的值,我需要决定需要在哪个表中写入数据 这可以通过使用分类器来实现。以下是配置: Writer-Writer将设置Classifier以决定我们需要使用哪个Writer。根据classfiter的输出,将决定编写器 @Bean public ItemWriter<Pojo> itemWriter() {
e、 g项具有归档类型,类型可以具有值A或B,根据归档类型中的值,我需要决定需要在哪个表中写入数据 这可以通过使用分类器来实现。以下是配置: Writer-Writer将设置Classifier以决定我们需要使用哪个Writer。根据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();
}
}