从 Parent 继承Step
如果一组共享相似的配置,那么定义
具体代码可以从中继承属性的 “parent” 来继承属性。与 class 相似
继承,则 “child” 将其元素和属性与
父级的。子级还会覆盖父级的任何 .Steps
Step
Steps
Step
Steps
在以下示例中, , 继承自 。是的
使用 、 、 、 和 实例化。此外,是 ,因为它是
被 覆盖,如下例所示:Step
concreteStep1
parentStep
itemReader
itemProcessor
itemWriter
startLimit=5
allowStartIfComplete=true
commitInterval
5
concreteStep1
Step
<step id="parentStep">
<tasklet allow-start-if-complete="true">
<chunk reader="itemReader" writer="itemWriter" commit-interval="10"/>
</tasklet>
</step>
<step id="concreteStep1" parent="parentStep">
<tasklet start-limit="5">
<chunk processor="itemProcessor" commit-interval="5"/>
</tasklet>
</step>
该属性在 job 元素中的步骤中仍然是必需的。这是两个人
原因:id
-
在保留 .如果相同 独立步骤在作业的多个步骤中引用,则会发生错误。
id
StepExecution
-
在创建任务流时,如本章后面所述,属性 应引用流程中的步骤,而不是独立步骤。
next
抽象Step
有时,可能需要定义一个不是完整配置的父级。例如,如果 、 和 属性是
离开配置,则初始化失败。如果父级必须
在没有这些属性中的一个或多个的情况下定义,则应使用该属性。An 仅扩展,从不实例化。Step
Step
reader
writer
tasklet
Step
abstract
abstract
Step
在以下示例中,如果 () 如果
没有被宣布为抽象的。, () 有 、 和 。Step
abstractParentStep
Step
concreteStep2
itemReader
itemWriter
commit-interval=10
<step id="abstractParentStep" abstract="true">
<tasklet>
<chunk commit-interval="10"/>
</tasklet>
</step>
<step id="concreteStep2" parent="abstractParentStep">
<tasklet>
<chunk reader="itemReader" writer="itemWriter"/>
</tasklet>
</step>
合并列表
上的一些可配置元素是列表,例如元素。
如果父级和子级都声明了一个元素,则
child's 列表将覆盖 parent's 列表。允许子项添加其他
listeners 添加到 parent定义的 List 中,每个 List 元素都有一个属性。
如果元素指定 ,则子项的列表将与
parent's 而不是覆盖它。Steps
<listeners/>
Steps
<listeners/>
merge
merge="true"
在以下示例中,“concreteStep3”是使用两个侦听器创建的:和 :Step
listenerOne
listenerTwo
<step id="listenersParentStep" abstract="true">
<listeners>
<listener ref="listenerOne"/>
<listeners>
</step>
<step id="concreteStep3" parent="listenersParentStep">
<tasklet>
<chunk reader="itemReader" writer="itemWriter" commit-interval="5"/>
</tasklet>
<listeners merge="true">
<listener ref="listenerTwo"/>
<listeners>
</step>