|
对于最新稳定版本,请使用Spring Batch Documentation 6.0.0! |
多文件输入
在一个文件中处理多个文件是常见的要求步.假设
文件格式都一样,都是多资源ItemReader支持此类
用于XML和平面文件处理的输入。考虑目录中的以下文件:
file-1.txt file-2.txt ignored.txt
file-1.txt和file-2.txt格式相同,出于商业原因,应该是一样的
一起处理。这多资源ItemReader可以用来读取两个文件的
使用万能牌。
-
Java
-
XML
以下示例展示了如何在 Java 中读取带有万用符的文件:
Java 配置
@Bean
public MultiResourceItemReader multiResourceReader(@Value("classpath:data/input/file-*.txt") Resource[] resources) {
return new MultiResourceItemReaderBuilder<Foo>()
.delegate(flatFileItemReader())
.resources(resources)
.build();
}
以下示例展示了如何读取带有通配符的文件(XML 格式):
XML 配置
<bean id="multiResourceReader" class="org.spr...MultiResourceItemReader">
<property name="resources" value="classpath:data/input/file-*.txt" />
<property name="delegate" ref="flatFileItemReader" />
</bean>
所提及的代表是简单的FlatFileItemReader.上述配置为
两个文件的输入,处理回滚和重启场景。需要注意的是,
和任何情况一样ItemReader,添加额外输入(此处指文件)可能导致潜在输入
重启时出现问题。建议批量作业与单独的个体协作
目录直到成功完成。
输入资源的排序方式是MultiResourceItemReader#setComparator(Comparator)以确保在重启场景中,作业运行之间的资源排序保持不变。 |