Java-Batch:如何将数据从一个步骤传递到另一个步骤?

时间:2017-01-22 01:10:35

标签: java java-ee java-batch jberet

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

请参阅此JBeret test以了解使用示例。

类似的stackoverflow讨论: How to put in custom scope/context (JobScoped - custom CDI scope) particular instance from request to make it injectable?