Creación del proyecto con Spring Boot
Vamos a https://start.spring.io/ y generamos un proyecto Spring Boot con Batch y HSQLDB (que es una base de datos embebida para persistir los metadatos de las operaciones Batch). Lo descargamos y lo importamos como proyecto Maven en nuestro Eclipse.
Job, Step y Tasklet
Ahora creamos un nuevo componente con dos propiedades que Spring auto-instanciará: una del tipo JobBuilderFactory y otra del tipo StepBuilderFactory.
Creamos un Step usando la anterior factoría y creamos un Tasklet (una interfaz que sirve para hacer algo simple), el cual imprimirá en la consola una cadena de texto.
Después, creamos un Job, que lanzará el anterior Step.
MyJobConfig.java
package com.luisgomezcaballero.springbatchdemo; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.StepContribution; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.scope.context.ChunkContext; import org.springframework.batch.core.step.tasklet.Tasklet; import org.springframework.batch.repeat.RepeatStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @EnableBatchProcessing public class MyJobConfig { @Autowired private JobBuilderFactory jobBuilderFactory; @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Step myStep() { return stepBuilderFactory.get("myStep").tasklet(new Tasklet() { @Override public RepeatStatus execute(StepContribution arg0, ChunkContext arg1) throws Exception { System.out.println("myTasklet"); return RepeatStatus.FINISHED; } }).build(); } @Bean public Job myJob() { return jobBuilderFactory.get("myJob").start(myStep()).build(); } }
Demostración
Clic derecho sobre SpringBatchApplication, Run As, Java Application. Se ejecutarán los jobs que hayamos especificado y podremos ver nuestro mensaje en la consola.
Repositorio
El código de este proyecto de demostración puede encontrarse en https://github.com/luisgomezcaballero/spring-batch-demo.
So, what do you think ?