A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.
Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides more advanced technical services and features that will enable extremely high-volume and high performance batch jobs through optimization and partitioning techniques. Simple as well as complex, high-volume batch jobs can leverage the framework in a highly scalable manner to process significant volumes of information.
The quickest way to get started with Spring Batch is to use Spring Boot.
Once your build process is setup (using either Maven or Gradle) using Spring Boot, add the batch starter dependency
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
// Gradle
compile("org.springframework.boot:spring-boot-starter-batch")
Create a configuration class to configure your job
@Configuration
public class BatchConfiguration {
@Autowired
private JobBuilderFactory jobBuilderFactory;
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(new Tasklet() {
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
return null;
}
})
.build();
}
@Bean
public Job job(Step step1) throws Exception {
return jobBuilderFactory.get("job1")
.incrementer(new RunIdIncrementer())
.start(step1)
.build();
}
}
Create a main class to run your batch job from
@EnableBatchProcessing
@SpringBootApplication
public class Main {
public static void main(String [] args) {
System.exit(SpringApplication.exit(SpringApplication.run(
BatchConfiguration.class, args)));
}
}
You can now build your project and run it via java -jar <JAR_NAME> where <JAR_NAME> is the name of the jar your build system generates.
You can read more about using Spring Boot with Spring Batch in the Getting Started Guide: Creating a Batch Service.