Spring 批量拆分处理器

Spring Batch Split Processor

我需要根据记录属性应用不同的处理器链,生成不同的记录类型。

                             /--> processor A --> writer A
reader --> split processor --|
                             \--> processor B --> writer B

因此处理因阅读项目而异:

A record (read) -> (split processor) -> (processor A) -> (writer A)
B record (read) -> (split processor) -> (processor B) -> (writer B)

这可以使用多个 ItemProcessListener 并在 afterProcess() 中编写过滤逻辑来实现。

寻找更好的方法。

ClassifierCompositeItemProcessor 就是您要查找的内容(您所说的 split processor)。此项目处理器使用 Classifier 对项目进行分类并将它们相应地传递给委托处理器。

要实现您描述的模式,您需要将此处理器与类似的项目编写器结合使用:ClassifierCompositeItemWriter