首页 > 解决方案 > Spring Batch:多个作者

问题描述

我有一个 XML 输入文件(非常大),必须按以下方式处理:

因为输入/输出文件很大,所以我使用 StaxItemReader 和 StaxItemWriter 来读/写文件。同时,我实现了 ComposedItemProcessor,它将 X 转换为 X',然后将 X' 转换为 Y。问题是:如何轻松使用 StaxItemWriter 来编写:X' 和 Y?

最简单的方法是分两步处理:

但我想避免不必要的解析。是否可以分叉作业并同时写入 X' 和 Y?

标签: springspring-batch

解决方案


同时,我实现了 ComposedItemProcessor,它将 X 转换为 X',然后将 X' 转换为 Y。问题是:如何轻松使用 StaxItemWriter 来编写:X' 和 Y?

在这种情况下,您的输入项目的类型ComposedItemProcessor是 X,输出是 Y。Y 是进入项目编写器的项目类型。因此,您的项目编写者将无法编写 X' 项目。

根据您的要求,write all updated X' items to new file并且transform each item X' to some new object Y是使您的步骤相互依赖的原因。所以我想你需要按照你提到的两个步骤进行。


推荐阅读