Spring Batch参考文档中文版

6.5 委托模式(Delegate Pattern)与注册Step

请注意, CompositeItemWriter是委托模式的一个示例, 这在Spring Batch中很常见的。 委托自身可以实现回调接口 StepListener。 如果实现了,那么他们就会被当作JobStep的一部分与 Spring Batch Core 结合使用, 然后他们基本上必定需要手动注册到 Step 中。

一个 reader, writer, 或 processor,如果实现了 ItemStream / StepListener接口,就会被自动组装到 Step 中。 但因为 delegates 并不为 Step 所知, 因此需要被注入(作为listeners监听器或streams流,或两者都可):

<job id="ioSampleJob">
    <step name="step1">
        <tasklet>
            <chunk reader="fooReader" processor="fooProcessor" writer="compositeItemWriter"
                   commit-interval="2">
                <streams>
                    <stream ref="barWriter" />
                </streams>
            </chunk>
        </tasklet>
    </step>
</job>

<bean id="compositeItemWriter" class="...CustomCompositeItemWriter">
    <property name="delegate" ref="barWriter" />
</bean>

<bean id="barWriter" class="...BarWriter" />