Skip to content

devsuperior/hello-world-spring-batch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevSuperior logo First project using Spring Batch

Case study to implement a hello world message using Spring Batch 5.0

Support material

https://spring.io/blog/2022/11/24/spring-batch-5-0-goes-ga

https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide (Guia para migração de versões mais antigas)

Key topics for creating a spring batch application

Step: Maven dependency

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-batch</artifactId>
</dependency>
  • Required: Include a implementation JDBC (Database H2)

Step: Job and Step Configuration

@Configuration
public class BatchConfig {

	@Bean
	public Job job(JobRepository jobRepository, Step step) {
		return new JobBuilder("job", jobRepository)
				.start(step)
				.build();
	}

	@Bean
	public Step step(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
		return new StepBuilder("step", jobRepository)
				.tasklet((StepContribution contribution, ChunkContext chunkContext) -> {
					System.out.println("Olá, mundo!");
					return RepeatStatus.FINISHED;
				}, transactionManager)
				.build();
	}
}

Step: Refactoring project

@Configuration
public class BatchConfig {

	@Bean
	public Job job(JobRepository jobRepository, Step printHelloStep) {
		return new JobBuilder("job", jobRepository)
				.start(printHelloStep)
				.incrementer(new RunIdIncrementer())
				.build();
	}
}
@Configuration
public class PrintHelloStepConfig {

	@Bean
	public Step printHelloStep(JobRepository jobRepository, PlatformTransactionManager transactionManager, Tasklet printHelloTasklet) {
		return new StepBuilder("step", jobRepository)
				.tasklet(printHelloTasklet, transactionManager)
				.build();
	}

}
@Component
@StepScope
public class PrintHelloTasklet implements Tasklet {

	@Value("#{jobParameters['nome']}")
  private String nome;

	@Override
	public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
		System.out.println("Olá, " + nome +" !");
		return RepeatStatus.FINISHED;
	}
}

About

Simple project to print "hello world" using spring batch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages