|
对于最新稳定版本,请使用Spring Batch Documentation 6.0.0! |
从父母那里继承步
如果一组步骤如果配置相似,那么定义一个
“家长”步从中步骤可能继承财产。与类别相似
爪哇语中的继承,即“孩子”步将其元素和属性与
父母的。孩子也可以覆盖父母的任何一个步骤.
在以下示例中,步,具体步骤1,继承于parentstep.是的
实例化为itemReader,itemProcessor,itemWriter,startLimit=5和允许StartIfComplete=true。.此外,提交间隔是5,因为
被具体步骤1 步,如下示例所示:
<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>
这身份证属性仍然要求在作业元素的步骤中。这是两个人的
原因:
-
这
身份证当坚持 时,将 作为步长名步执行.如果是一样的话 独立步骤在作业中的多个步骤中被引用,则发生错误。
-
在创建工作流时,正如本章后面所述,
下一个属性 应该指流程中的步骤,而不是独立步骤。
抽象步
有时,可能需要定义父体步这不是完备的步配置。例如,如果读者,作家和任务小属性为
从一个步配置,然后初始化失败。如果父母必须
定义时没有包含一个或多个这些性质,抽象属性应该被使用。一抽象 步只是扩展,从不实例化。
在以下示例中,步 (摘要ParentStep如果
并未被认定为抽象的。这步, (concreteStep2) 具有itemReader,itemWriter和提交间隔=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>
合并列表
一些可配置元素步骤是列表,例如<听众/>元素。
如果父母和孩子都一样步骤声明a<听众/>元素,该
子的列表覆盖父母的列表。让孩子能够添加更多内容
监听器对父列表定义的列表,每个列表元素都有合并属性。
如果该元素指定了merge=“true”,然后子节点的列表与
父母的,而不是覆盖它。
在以下示例中,步“concreteStep3” 是用两个监听器创建的:听众一号和听众二号:
<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>