148 lines
4.2 KiB
HTML
148 lines
4.2 KiB
HTML
---
|
|
# The name of your project
|
|
title: Spring Batch
|
|
|
|
badges:
|
|
|
|
|
|
# Customize your project's badges. Delete any entries that do not apply.
|
|
custom:
|
|
- name: Source (GitHub)
|
|
url: https://github.com/spring-projects/spring-batch
|
|
icon: github
|
|
|
|
- name: Issues (JIRA)
|
|
url: http://jira.springsource.org/browse/BATCH
|
|
icon: tracking
|
|
|
|
- name: CI (Bamboo)
|
|
url: https://build.spring.io/browse/BATCH
|
|
icon: ci
|
|
|
|
- name: StackOverflow
|
|
url: http://stackoverflow.com/questions/tagged/spring-batch
|
|
icon: stackoverflow
|
|
|
|
- name: Metrics (SonarQube)
|
|
url: https://sonar.springsource.org/dashboard/index/org.springframework.batch:spring-batch
|
|
icon: metrics
|
|
|
|
---
|
|
<!DOCTYPE HTML>
|
|
<html lang="en-US">
|
|
|
|
{% capture billboard_description %}
|
|
|
|
A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.
|
|
|
|
{% endcapture %}
|
|
|
|
{% capture main_content %}
|
|
|
|
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.
|
|
|
|
## Features
|
|
|
|
* Transaction management
|
|
* Chunk based processing
|
|
* Declarative I/O
|
|
* Start/Stop/Restart
|
|
* Rety/Skip
|
|
* Web based administration interface (Spring Batch Admin)
|
|
|
|
<span id="quick-start"></span>
|
|
## Quick Start
|
|
|
|
{% include download_widget.md %}
|
|
|
|
The quickest way to get started with Spring Batch is to use Spring Boot.
|
|
|
|
1. Once your build process is setup (using either Maven or Gradle) using Spring Boot, add the batch starter dependency
|
|
|
|
````xml
|
|
<!-- Maven -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-batch</artifactId>
|
|
</dependency>
|
|
````
|
|
|
|
````groovy
|
|
// Gradle
|
|
compile("org.springframework.boot:spring-boot-starter-batch")
|
|
````
|
|
2. Create a configuration class to configure your job
|
|
|
|
````java
|
|
@Configuration
|
|
@EnableBatchProcessing
|
|
@EnableAutoConfiguration
|
|
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();
|
|
}
|
|
}
|
|
````
|
|
3. Create a main class to run your batch job from
|
|
|
|
````java
|
|
public class Main {
|
|
public static void main(String [] args) {
|
|
System.exit(SpringApplication.exit(SpringApplication.run(
|
|
BatchConfiguration.class, args)));
|
|
}
|
|
}
|
|
````
|
|
4. 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]({{site.main_site_url}}/guides/gs/batch-processing).
|
|
|
|
{% endcapture %}
|
|
|
|
{% capture related_resources %}
|
|
|
|
### Getting Started Guides
|
|
|
|
* [Creating a Batch Service]({{site.main_site_url}}/guides/gs/batch-processing)
|
|
|
|
### Resources
|
|
|
|
* [FAQ](faq.html)
|
|
* [Books](resources.html#books)
|
|
* [Videos](resources.html#videos)
|
|
|
|
### Related Projects
|
|
|
|
* [Spring Integration]({{site.projects_site_url}}/spring-integration/)
|
|
* [Spring Data]({{site.projects_site_url}}/spring-data/)
|
|
* [Spring for Apache Hadoop]({{site.projects_site_url}}/spring-hadoop/)
|
|
|
|
{% endcapture %}
|
|
|
|
|
|
{% include project_page.html %}
|
|
|
|
</html>
|