一段时间我正在寻找解决 Spring 季批次问题的解决方案 . 我应该使用spring批处理从csv文件重现/创建新的csv文件 . 这是一个例子:
outPut | inPut
------ | ------
File1 | source1
File2 | source2 and source 3
File3 | source1 and source2
File4 | Csource3
以下是创建输出编号1的示例,例如File1:
@Bean
public Step step1() {
return stepBuilderFactory.get("createFile1")
.<source1, File1> chunk(10)
.reader(source1Reader())
.processor(transformesource1ToFile1())
.writer(File1Writer())
.build();
}
这对于其他outPut文件也是一样的,但正如你可以看到一些输出使用相同的源,在这个事实上我无法读取相同的数据两次以重新生成新的输出,所以我试图将它们存储为 Map 上的资源(资源将使用多于一个),即,我将拥有
List<source1>, List<source2>, List<source3>
再次访问这些来源,而不是每次都经过读者 .
现在我的问题是,我可以在ItemProcessor / ItemWriter / itemReader中的Spring批处理中访问/获取这些列表吗?
我可以将这些List注入/传递给itemProcessor,因为它是itemReader的返回结果
1 回答
我在这篇文章中找到了解决方案Spring Batch Tutorial: Creating a Custom ItemReader
它是一个自定义阅读器,从List中读取输入数据 .