我正在使用spring-batch将数据从一个数据源复制到另一个数据源。我有多个xml文件,其中定义了必要的步骤和作业。它们都很相似,有很多重复的“代码”。唯一的区别通常是从第一个数据源选择数据的SQL,以及在第二个数据源中插入数据的表的名称。
我想创建一个父作业,它由复制数据的步骤和作业组成,并且只接受SQL和目标表的名称作为参数。我知道,我可以用' parent‘属性设置一个父作业:
<batch:job id="copyDataJob1" parent="AbstractCopyJob">
...
</batch>但是如何在父作业的定义中传递和使用这些参数呢?
发布于 2014-01-21 22:42:11
作业定义中的步骤不是继承的(我们不知道将它们放在新流程中的什么位置),因此您尝试的操作不是100%可能的。但是,您可以做的是定义一个父步骤(或多个步骤),您可以为其定义适当的片段。在此基础上,您创建的每个作业定义将只是一个扩展父级的步骤列表。
也就是说,如果读取器中的SQL是从运行到运行的所有更改,为什么不只有一个作业定义,将读取器定义为步骤作用域,并使用作业参数传递SQL?
https://stackoverflow.com/questions/21236672
复制相似问题