Spring Batch Tutorial

Spring Batch is an open source, lightweight framework which is designed for use in developing robust batch applications. Batch applications are usually required by systems that need to process large volume of data on daily basis.

There are many applications that require to perform bulk processing of large amount of data on daily basis in order to carry out operations of enterprise businesses. These operations may include:

  • Automated, complex processing of large volume of data efficiently without user interaction.
  • Processing of billions of transactions data for enterprises everyday.
  • Integration of data from various sources that requires formatting, validating, and processing of large volume of data into a system of record.

Spring Batch is not designed for use as a scheduling framework. However, it can be used in combination with a scheduling framework such as Quartz, Control-M, etc.

Typical working of a Spring Batch Application

The figure below is a high level diagram that shows how a typical Spring Batch Application works:

Here, Reader reads data in bulk from a database, file, or queue. The processor processes the data. The writer writes back the processed data.

Spring Batch provides reusable functions for reading, processing, and writing large volumes of data records.