多文件输入

在单个文件中处理多个文件是一种常见的要求Step.假设 文件都具有相同的格式,则MultiResourceItemReader支持这种类型的 XML 和平面文件处理的输入。考虑目录中的以下文件:spring-doc.cadn.net.cn

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

file-1.txt和file-2.txt的格式相同,出于业务原因,应为 一起处理。这MultiResourceItemReader可用于通过以下方式读取两个文件 使用通配符。spring-doc.cadn.net.cn

以下示例显示了如何在 Java 中读取带有通配符的文件:spring-doc.cadn.net.cn

Java 配置
@Bean
public MultiResourceItemReader multiResourceReader(@Value("classpath:data/input/file-*.txt") Resource[] resources) {
	return new MultiResourceItemReaderBuilder<Foo>()
					.delegate(flatFileItemReader())
					.resources(resources)
					.build();
}

以下示例显示了如何读取 XML 中带有通配符的文件:spring-doc.cadn.net.cn

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,添加额外的输入(在本例中为文件)可能会导致潜在的 重新启动时出现问题。建议批处理作业与自己的个人一起工作 目录,直到成功完成。spring-doc.cadn.net.cn

输入资源的排序方式为MultiResourceItemReader#setComparator(Comparator)以确保在重启方案中的作业运行之间保留资源排序。