是否可以在Spring批处理中使用List <object>而不是csv文件作为输入

时间:2017-09-29 13:15:16

标签: spring-batch

一段时间我正在寻找解决方案以解决春季批次的问题。我应该使用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的返回结果

1 个答案:

答案 0 :(得分:0)

我在这篇文章中发现了解决方案Spring Batch Tutorial: Creating a Custom ItemReader

这是一个从List中读取输入数据的自定义阅读器。