如何使用 Spring-Batch 从单个 item/line 执行多次写入?

How to perform multiple write from single item/line using Spring-Batch?

如何使用 spring-batch 从单个项目执行给定数据的多次写入?

我是否需要读取输入 x 次并创建对象然后写入或读取输入一次并执行多次写入?

输入:

输出1:

输出2:

Spring Batch 提供了一个 CompositeItemWriter,它接受一个 ItemWriter 的列表。这位作家依次为每个项目打电话给每个作家。所以如果我有一个项目需要以不同的格式写入两个不同的文件,我可以使用 CompositeItemWriter 将每个项目写入每个文件。在您的情况下,您将使用多个 JdbcBatchItemWriters.

您可以在此处的文档中阅读有关 CompositeItemWriter 的更多信息:http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/support/CompositeItemWriter.html

ItemWriter 的示例显示在此处的 Spring 批处理示例中:https://github.com/spring-projects/spring-batch/blob/master/spring-batch-samples/src/main/resources/jobs/compositeItemWriterSampleJob.xml