一段时间我正在寻找解决方案以解决春季批次的问题。我应该使用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文件也是一样的,但正如你可以看到一些输出使用相同的源,在这个事实上,我无法读取相同的数据两次来重新生成新的输出,所以我试图将它们作为资源存储在地图上(资源将被用于多个),即,我将有
List<source1>, List<source2>, List<source3>
再次访问这些来源,而不是每次都经过读者。
现在我的问题是,我可以在ItemProcessor / ItemWriter / itemReader中的Spring批处理中访问/获取这些列表吗?
我可以将这些List注入/传递给itemProcessor,因为它是itemReader的返回结果
答案 0 :(得分:0)
我在这篇文章中发现了解决方案Spring Batch Tutorial: Creating a Custom ItemReader
这是一个从List中读取输入数据的自定义阅读器。