spring 使用 ClassifierCompositeItemwriter 进行批处理,并将所有项目写入数据库

spring batch using ClassifierCompositeItemwriter and additionally write all items to database

我在spring批次中有一个项目,我从一个txt文件中读取(输入数据),根据我读取的项目的验证,它应该写在一个txt文件中(输出1) 或在另一个 txt 文件中(输出 2)我认为为此我应该使用 ClassifierCompositeItemwriter,我该怎么做才能另外写入我在数据库中读取的所有项目(输出 3)? 我必须记住三个输出有不同的格式

谢谢!

您可以使用 CompositeItemWriter 将写入委托给 ItemWriter 的列表。 ItemWriter 列表的顺序很重要,因为它将按顺序调用 ItemWriter。所以确保 ClassifierCompositeItemwriterItemWriter 之前用于写入数据库。 :

@Bean
public ItemWriter itemWriter(ClassifierCompositeItemwriter classiferWriter ,JdbcBatchItemWriter jdbcWriter){
  CompositeItemWriter writer = new CompositeItemWriter();
  writer.setDelegates(List.of(classiferWriter,jdbcWriter));
  return writer;
}