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:
-
Application
-
Core
-
Infrastructure.
The application contains all batch jobs and custom code written by developers using Spring Batch.
JobLauncher
, Job
, and 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(ItemReader
and ItemWriter