首页 > 解决方案 > 如何在 Spring Batch 中处理相同的对象事实多个步骤?

问题描述

如何在 Spring Bath 中多步处理相同的对象真值?Gustavo Barbosa dos·há um minuto 我正在从 JdbcPagingItemReader 的数据库中查询对象,我想要的是:

  1. 通过多个步骤多次处理同一个对象

像这样的一些事情:

@Bean
public Job jobValorizacao() {
  return jobBuilderFactory.get("jobValorizacao")
    .incrementer(new RunIdIncrementer())
    .start(researchContract())
    .next(calculateInterest())
    .next(calculateArrears())
    .next(calculateFDI())
    .next(calculateXPTO())
  .build();
}

当每个对象通过每个步骤时,我想对数据库执行更新。

使用此控件,我将知道 Job 在哪个步骤停止,在哪个步骤中每个 Objet 都出现错误等。

标签: spring-batch

解决方案


您要的不是 Spring Batch 的工作方式。每个步骤都包含在 Spring Batch 中。ItemProcessor话虽如此,您可以在一个步骤中通过多个实现传递单个项目。这听起来更像你真正想要的。这可以通过将ItemProcessor实例列表传递给CompositeItemProcessor. 从那里,代表将被按顺序召集。

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


推荐阅读