I am new to Spring Batch. My requirement is I have a reader which gets the records through a web service call/database call and currently I am writing those records to one table
Spring Batch defines independent steps for processing. Each step is responsible for their input, processing, and output. Because of this, I'd structure the job something like:
<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>
With the above configuration, the reader would be a step scoped reader that reads in type A. The typeAwriter writes out type A. The processor is the processor that converts type A to type B. The typeBwriter writes type B. Since the processor returns a list of type B, the typeBwriter would need to be a custom implementation that loops over the lists that the processor returns (typeBwriter would take a List<List<TypeB>>
).