Batch processing is a processing mode which involves execution of series of automated complex jobs without user interaction. A batch process handles bulk data and runs for a long time.
Several Enterprise applications require to process huge data to perform operations involving −
Time-based events such as periodic calculations.
Periodic applications that are processed repetitively over large datasets.
Applications that deals with processing and validation of the data available in a transactional manner.
Therefore, batch processing is used in enterprise applications to perform such transactions.
Spring batch is a lightweight framework which is used to develop Batch Applications that are used in Enterprise Applications.
In addition to bulk processing, this framework provides functions for −
You can also scale spring batch applications using its portioning techniques.
Following are the notable features of Spring Batch −
Flexibility − Spring Batch applications are flexible. You simply need to change an XML file to alter the order of processing in an application.
Maintainability − Spring Batch applications are easy to maintain. A Spring Batch job includes steps and each step can be decoupled, tested, and updated, without effecting the other steps.
Scalability − Using the portioning techniques, you can scale the Spring Batch applications. These techniques allow you to −
Execute the steps of a job in parallel.
Execute a single thread in parallel.
Reliability − In case of any failure, you can restart the job from exactly where it was stopped, by decoupling the steps.
Support for multiple file formats − Spring Batch provides support for a large set of readers and writers such as XML, Flat file, CSV, MYSQL, Hibernate, JDBC, Mongo, Neo4j, etc.
Multiple ways to launch a job − You can launch a Spring Batch job using web applications, Java programs, Command Line, etc.
In addition to these, Spring Batch applications support −
Automatic retry after failure.
Tracking status and statistics during the batch execution and after completing the batch processing.
To run concurrent jobs.
Services such as logging, resource management, skip, and restarting the processing.