对于最新稳定版本,请使用Spring Batch Documentation 6.0.0spring-doc.cadn.net.cn

从父母那里继承

如果一组步骤如果配置相似,那么定义一个 “家长”从中步骤可能继承财产。与类别相似 爪哇语中的继承,即“孩子”将其元素和属性与 父母的。孩子也可以覆盖父母的任何一个步骤.spring-doc.cadn.net.cn

在以下示例中,,具体步骤1,继承于parentstep.是的 实例化为itemReader,itemProcessor,itemWriter,startLimit=5允许StartIfComplete=true。.此外,提交间隔5,因为 被具体步骤1 ,如下示例所示:spring-doc.cadn.net.cn

<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>

身份证属性仍然要求在作业元素的步骤中。这是两个人的 原因:spring-doc.cadn.net.cn

  • 身份证当坚持 时,将 作为步长名步执行.如果是一样的话 独立步骤在作业中的多个步骤中被引用,则发生错误。spring-doc.cadn.net.cn

抽象

有时,可能需要定义父体这不是完备的配置。例如,如果读者,作家任务小属性为 从一个配置,然后初始化失败。如果父母必须 定义时没有包含一个或多个这些性质,抽象属性应该被使用。一抽象 只是扩展,从不实例化。spring-doc.cadn.net.cn

在以下示例中, (摘要ParentStep如果 并未被认定为抽象的。这, (concreteStep2) 具有itemReader,itemWriter提交间隔=10.spring-doc.cadn.net.cn

<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”,然后子节点的列表与 父母的,而不是覆盖它。spring-doc.cadn.net.cn

在以下示例中,“concreteStep3” 是用两个监听器创建的:听众一号听众二号:spring-doc.cadn.net.cn

<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>