Spring 基于项目字段的批处理 CompletionPolicy

Spring batch CompletionPolicy based on item fields

我正在尝试实施 CompletionPolicy,其中我需要根据一些文件来决定完成,例如假设我的商品是一个订单 class 我需要将订单金额加起来,一旦金额超过1000 我要块完成。 ordeer.amount

但是在 CompletionPolicy 中我从来没有 item.Is 还有其他方法可以实现它吗? 或者我可以通过某种方式在 CompletionPolicy 中获取项目

您可以让您的 CompletionPolicy 实现 ItemReadListener (http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/ItemReadListener.html)。您可以通过 ItemReadListener.afterRead 方法访问这些项目。

与读取器、处理器、写入器和 tasklet 等其他标准批处理组件相比,实现侦听器接口的完成策略 不会 自动注册。

因此您需要将完成策略明确注册为侦听器。