Skip to main content
 首页 » 编程设计

spring-batch之我们如何在 Spring Batch 作业的不同步骤之间共享数据

2024年04月12日34fff_TT

深入研究 Spring Batch,我想知道如何在作业的不同步骤之间共享数据?

我们可以使用 JobRepository 来实现这一点吗?如果是的话,我们该怎么做?

还有其他方法可以做到/达到同样的目的吗?

请您参考如下方法:

从一个步骤中,您可以将数据放入StepExecutionContext中。 然后,通过监听器,您可以将数据从 StepExecutionContext 提升到 JobExecutionContext

JobExecutionContext 在以下所有步骤中可用。

注意:数据必须短。 这些上下文通过序列化保存在 JobRepository 中,并且长度有限(如果我没记错的话,是 2500 个字符)。

因此,这些上下文适合共享字符串或简单值,但不适合共享集合或大量数据。

共享海量数据并不是 Spring Batch 的理念。 Spring Batch 是一组不同的操作,而不是一个巨大的业务处理单元。