Spring Batch Architecture
Spring Batch is designed with extensibility and a diverse group of end users in mind. The figure below shows a sketch of the layered architecture that supports the extensibility and ease of use for end-user developers.
Figure : Spring Batch Layered Architecture
This layered architecture highlights three major high level components:
The application contains all batch jobs and custom code written by developers using Spring Batch.
The Batch Core contains the core runtime classes necessary to launch and control a batch job. It includes things such as a
Step implementations. Both Application and Core are built on top of a common infrastructure.
This infrastructure contains common readers and writers, and services such as the
RetryTemplate, which are used both by application developers(
ItemWriter) and the core framework itself.