Java-批处理:如何将数据从一步传递到另一步?

Java-Batch: How to pass data from one step to another step?

在我的 JBeret java-批处理作业中,我需要将参数从一个步骤传递到下一步。到目前为止,我只是想通过 JobContext.setTransientUserData().

来做到这一点

我的问题是: transientUserData 方式是最佳实践方式还是有更好的选择? 在批处理步骤之间传递参数是否很常见,或者步骤在这方面应该是自给自足的?

是的,作业上下文瞬态用户数据是在步骤之间传递应用程序数据的标准机制,如批处理规范 (JSR 352) 所定义。这种用法是可移植的,适用于所有兼容的实现。

步骤大部分是 self-contained,但步骤也存在于作业中。因此,一个步骤从另一个步骤导出或使用应用程序数据以协调作业执行是很常见的。

在 JBeret 中,您可以将 CDI bean 声明为 @JobScoped,并将其注入到需要访问共享应用程序状态的位置。

请参阅此 JBeret test 示例用法。

类似的Whosebug讨论: