Spring Batch-读一次,写两次 [英] Spring Batch - Read once and write twice

查看:21
本文介绍了Spring Batch-读一次,写两次的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Spring Batch的新手。 我的要求是我有一个读取器,它通过Web服务调用/数据库调用获取记录,目前我正在将这些记录写入一个表。 现在我需要处理相同的记录(读取器读取的记录)并将其写入另一个表。 这里要注意的一点是,在第二次写入中存储的第二个项目属于不同类型的第一次写入。

我需要如下内容

1st Step: - Read items of type A --> Write items of Type A 
2nd Step:-  Read items of type A --> Process to type B ---> Write 10 items of type B

对于上述相同的工作,我需要事务管理。此外,在第-2步:-如果可能,我应该使用在第-1步中已经读取的数据。

推荐答案

Spring Batch定义了独立的处理步骤。每个步骤负责它们的输入、处理和输出。正因为如此,我会将工作安排如下:

<job id="myJob">
    <step id="step1" next="step2">
        <tasklet>
            <chunk reader="reader" writer="typeAwriter"/>
        </tasklet>
    </step>
    <step id="step2">
        <tasklet>
            <chunk reader="reader" processor="processor" writer="typeBwriter"/>
        </tasklet>
    </step>
</job>

使用上述配置,读取器将是读入类型A的步骤范围读取器。TypeAWriter写出类型A。处理器是将类型A转换为类型B的处理器。TypeBWriter写类型B。由于处理器返回类型B的列表,因此TypeBWriter需要是循环遍历处理器返回的列表的自定义实现(TypeBWriter将接受List<List<TypeB>>)。

这篇关于Spring Batch-读一次,写两次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆