【问题标题】:Spring-Batch: Define a parent job with parametersSpring-Batch:使用参数定义父作业
【发布时间】:2014-02-09 18:43:55
【问题描述】:

我正在使用 spring-batch 将数据从一个数据源复制到另一个数据源。我有多个 xml 文件,其中包含必要步骤和作业的定义。它们都非常相似,有很多重复的“代码”。唯一的区别通常是从第一个数据源中选择数据的 SQL 以及在第二个数据源中插入数据的表的名称。

我想创建一个父作业,它包含复制数据的步骤和作业,并且只将 SQL 和目标表的名称作为参数。我知道,我可以使用“父”属性设置父作业:

<batch:job id="copyDataJob1" parent="AbstractCopyJob">
    ...
</batch>

但是如何在父作业的定义中传递和使用这些参数呢?

【问题讨论】:

  • 你是如何启动这些工作的?
  • 为什么不使用具有不同作业参数的相同作业作为更改要管理的查询/表池的关键?

标签: java spring spring-batch


【解决方案1】:

作业定义中的步骤不是继承的(我们不知道将它们放在新流程中的哪个位置),因此您尝试的操作并非 100% 可能。但是,您可以做的是定义一个父步骤(或多个步骤),您可以为其定义适当的部分。从那里开始,您创建的每个作业定义将只是扩展父级的步骤列表。

话虽如此,如果阅读器中的 SQL 是从运行到运行的全部变化,为什么不只定义一个作业定义,将阅读器定义为步骤范围并使用作业参数传入 SQL?

【讨论】:

  • 可以加个例子或者链接吗?
猜你喜欢
  • 2017-06-15
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 2018-08-31
相关资源
最近更新 更多