Spring Batch Started
Spring Batch is one of Spring family which supports Batch Application to develop.
This is under Spring Boot 2.0.5
Simple Example
- Do 2 tasks in 1 job
- Don’t save batch status into database(Sava HSQL)
build.gradle
buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' bootJar { baseName = 'gs-batch-processing' version = '0.1.0' } repositories { mavenCentral() } sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { compile("org.springframework.boot:spring-boot-starter-batch") compile("org.hsqldb:hsqldb") testCompile("junit:junit") }
Application.java
@SpringBootApplication public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } }
BatchConfiguration.java
@Configuration @EnableBatchProcessing @EnableAutoConfiguration public class BatchConfiguration { Logger logger = LoggerFactory.getLogger(BatchConfiguration.class); @Autowired private JobBuilderFactory jobBuilderFactory; @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Step step1() { return stepBuilderFactory.get("step1") .tasklet((StepContribution contribution, ChunkContext chunkContext)-> { return RepeatStatus.FINISHED; }) .build(); } @Bean public Step step2() { return stepBuilderFactory.get("step2") .tasklet(new Tasklet(){ public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) { return RepeatStatus.FINISHED; } }) .build(); } @Bean public Job job(Step step1, Step step2) throws Exception { return jobBuilderFactory.get("job1") .incrementer(new RunIdIncrementer()) .start(step1) .next(step2) .build(); } }
Run
Run Application.java class main method
コメント