多文件输入

在一个文件中处理多个文件是常见的要求.假设 文件格式都一样,都是多资源物品阅读器支持此类 用于XML和平面文件处理的输入。考虑目录中的以下文件:spring-doc.cadn.net.cn

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

file-1.txt和file-2.txt格式相同,出于商业原因,应该是一样的 一起处理。这多资源物品阅读器可以用来读取两个文件的 使用万能牌。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.上述配置为 两个文件的输入,处理回滚和重启场景。需要注意的是, 和任何情况一样物品阅读器,添加额外输入(此处指文件)可能导致潜在输入 重启时出现问题。建议批量作业与单独的个体协作 目录直到成功完成。spring-doc.cadn.net.cn

输入资源的排序方式是MultiResourceItemReader#setComparator(Comparator)以确保在重启场景中,作业运行之间的资源排序保持不变。