Spring Batch – 基于字段值的多个编写器

我正在为春季批处理工作,目前正在使用FlatFileItemWriter。

我想根据一些字段值将输入文件内容写入多个平面文件。 Spring批处理默认支持任何类型的function。[类似于CompositeItemWriter]

例如,我的输入文件内容是这样的。

john,35,retail,10000 joe,34,homeloan,20000 Amy,23,retail,2000 

现在我想基于第三列编写两个不同的文件,这意味着第1行和第3行应该转到file1,第2行应该转到file2。

我的编写器配置是:

              

看一下ClassifierCompositeItemWriter 。 此ItemWriter实现允许您定义一个Classifier ,用于选择要委派的定义的委托ItemWriter实例。 在您的情况下,您将创建一个基于field4决定的Classifier ,并将写入委托给FlatFileItemWriter的相应实例。

您可以在此处的文档中阅读有关ClassifierCompositeItemWriter更多信息: http : //docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/support/ClassifierCompositeItemWriter.html

使用ClassifierCompositeItemWriter

根据通过提供的分类器实现的路由器模式,为每个项目调用一个ItemWriters集合之一。

路由器模式基于bean内容