Files
spring-batch/index.html
2014-08-18 11:50:03 -05:00

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 &lt;JAR_NAME&gt; where &lt;JAR_NAME&gt; 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>