我使用spring-batch将数据从一个数据源复制到另一个数据源。我有多个xml文件,其中包含必要步骤和作业的定义。它们都非常相似,有很多重复的“代码”。唯一的区别通常是从第一个数据源中选择数据的SQL以及在第二个数据源中插入数据的表的名称。
我想创建一个父作业,其中包含复制数据的步骤和作业,并且仅将SQL和目标表的名称作为参数。我知道,我可以使用'parent'属性设置父作业:
<batch:job id="copyDataJob1" parent="AbstractCopyJob">
...
</batch>
但是如何在父作业的定义中传递和使用这些参数?
答案 0 :(得分:0)
作业定义中的步骤不会被继承(我们不知道将它们放在新流程中的位置),因此您尝试的不是100%可能的。但是,您可以执行的操作是定义您为其定义适当部分的父步骤(或多个步骤)。从那里,您创建的每个作业定义都只是扩展父作业的步骤列表。
话虽如此,如果读者中的SQL在运行之间发生了变化,为什么不只是一个作业定义,将读者定义为步骤作用并使用作业参数传入SQL?