ItemReaders和ItemWriters - 多个输入文件

优质
小牛编辑
122浏览
2023-12-01

在单个 Step 中处理多个输入文件是很常见的需求。如果这些文件都有相同的格式, 则可以使用 MultiResourceItemReader 来进行处理(支持 XML/或 纯文本文件)。 假如某个目录下有如下3个文件:

  1. file-1.txt
  2. file-2.txt
  3. ignored.txt

file-1.txtfile-2.txt 具有相同的格式, 根据业务需求需要一起处理. 可以通过 MuliResourceItemReader 使用 通配符 的形式来读取这两个文件:

  1. <bean id="multiResourceReader" class="org.spr...MultiResourceItemReader">
  2. <property name="resources" value="classpath:data/input/file-*.txt" />
  3. <property name="delegate" ref="flatFileItemReader" />
  4. </bean>

delegate 引用的是一个简单的 FlatFileItemReader。上面的配置将会从两个输入文件中读取数据,处理回滚以及重启场景。 应该注意的是,所有 ItemReader 在添加额外的输入文件后(如本示例),如果重新启动则可能会导致某些潜在的问题。 官方建议是每个批作业处理独立的目录,一直到成功完成为止。