Spring Batch:多个作家

问题描述 投票:0回答:1

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

  • 从xml文件中读取每个项目X.
  • 对于每个项目X更改一些字段(更新的X将表示为X')
  • 将所有更新的X'项目写入新文件
  • 将每个项X'转换为一个新对象Y.
  • 将每个转换后的Y对象写入其他新文件

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

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

  • 从文件读取 - >转换为X' - >将X'保存到文件UPDATED_X.xml
  • 读取文件UPDATED_X.xml - >转换为Y - >在文件Y.xml中保存Y.

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

spring spring-batch
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.