我有一个文件,其记录分布在多行中,以便在春季批处理。
Begin
EXP 123 1026
EXP 456 9894
INC 076 2014 1231
INC 187 2013 1045
End
前三个字符用于标识记录类型。我正在使用PatternMatchingCompositeLineTokenizer将记录映射到bean。如何为EXP和INC创建一个列表,其中EXP列表将包含所有EXP记录,INC列表将包含所有INC记录?
答案 0 :(得分:0)
看看spring-batch-samples。特别是Multiline example
您可以在src / main / resources / jobs中找到multilineJob.xml,以及所有其他示例作业xml文件。
您将需要实现一些自己的组件。特别是某种聚合阅读器,您需要将它传递给代表阅读器。您可以从示例中查看AggregateItemReader。你可以做的是创建一个包装类来保存两个列表,一个用于EXP,一个用于INC对象。对于读取的每个项目,将行/对象添加到EXP列表或包装器中的INC列表。
示例中的所有自定义类都在org.springframework.batch.sample.domain
子包中。您应该能够提取它们并运行示例。