我是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中读取的数据。
答案 0 :(得分:0)
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>>
)。