可以在运行时使用动态步骤配置Spring Batch作业吗?

时间:2012-02-11 00:00:52

标签: java spring spring-batch

我正在考虑Spring Batch 2.0来实现管道流程。该过程正在侦听某个事件,并且需要根据事件类型及其内容执行一组转换步骤。

春季批次似乎很合适。但是,通过文档,每个示例都将它们的作业及其步骤配置为xml。框架是否支持在运行时创建作业并动态配置步骤?

2 个答案:

答案 0 :(得分:2)

插件迈克尔回答:

您是想完全动态地从头到尾创建流程,还是想在某个时刻获得一些动态?

  1. 当Spring Batch从XML配置实例化作业(将所有内部)时,这意味着所有必需的bean都有setter / getters,您可以从空页面创建Job。这是一种长期且容易出错的方式(您需要像FlowJob一样创建JobParserJobFactoryBean,然后SimpleFlow然后StepState然后TaskletStep创建SimpleStepFactoryBean并将它们绑定在一起)。
  2. 我认为XML流的替代方案可能是您的编码逻辑。对于String Batch,它看起来只是一步,但具有自定义实现和子流。请参阅Example Tasklet Implementation中的<tasklet ref="myCleverTasklet" />示例。

答案 1 :(得分:1)

作业配置本身在作业运行之前设置,但可以使用conditional flows

创建灵活的作业配置

您不仅可以在作业运行时更改作业配置,而且在作业之间可以轻松更换配置