作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的 JBeret java-batch 作业中,我需要将参数从一个步骤传递到下一步。到目前为止,我只是想通过 JobContext.setTransientUserData() 来做到这一点。
我的问题是:transientUserData 方式是最佳实践方式还是有更好的选择?在批处理步骤之间传递参数是否很常见,或者步骤在这方面应该是自给自足的?
最佳答案
是的,作业上下文 transient 用户数据是在步骤之间传递应用程序数据的标准机制,如批处理规范 (JSR 352) 所定义。这种用法是可移植的,适用于所有兼容的实现。
步骤大部分是独立的,但步骤也存在于作业中。因此,一个步骤从另一个步骤导出或使用应用程序数据以协调作业执行是很常见的。
在 JBeret 中,您可以将 CDI bean 声明为 @JobScoped
,并将其注入(inject)需要访问共享应用程序状态的位置。
查看此 JBeret test例如用法。
类似的stackoverflow讨论: How to put in custom scope/context (JobScoped - custom CDI scope) particular instance from request to make it injectable?
关于Java-Batch:如何将数据从一个步骤传递到另一个步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41786324/
我是一名优秀的程序员,十分优秀!