스프링3버전대 부터 Spring Batch 5를 사용해야하는데, 배치 4 에서 5로 업데이트되는 과정에서 많은 업데이트가 있다.
우선 JobBuilderFactory와 StepBuilderFactory를 더이상 사용할 수 없는데, JobBuilder와 StepBuilder를 사용하면 된다. 아래는 스텝로그를 찍는 기본 예제이다.
@Configuration
public class HelloJobConfiguration {
@Bean
public Job helloJob(JobRepository jobRepository, Step helloStep1, Step helloStep2) {
return new JobBuilder("helloJob", jobRepository)
.start(helloStep1)
.next(helloStep2)
.build();
}
@Bean
public Step helloStep1(JobRepository jobRepository, PlatformTransactionManager tx) {
return new StepBuilder( "helloStep1", jobRepository)
.tasklet((contribution, chunkContext) -> {
System.out.println("====================================");
System.out.println(" helloStep1 executed ");
System.out.println("====================================");
return RepeatStatus.FINISHED;
}, tx).build();
}
@Bean
public Step helloStep2(JobRepository jobRepository, PlatformTransactionManager tx) {
return new StepBuilder( "helloStep2", jobRepository)
.tasklet((contribution, chunkContext) -> {
System.out.println("====================================");
System.out.println(" helloStep2 executed ");
System.out.println("====================================");
return RepeatStatus.FINISHED;
}, tx).build();
}
}
참고로 @EnableBatchProcessing 어노테이션을 제거해야 제대로 로그가 출력된다.
메인 어플리케이션 클래스도 첨부한다.
@SpringBootApplication
public class SpringBatchApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBatchApplication.class, args);
}
}
이 링크는 스프링 공식 깃헙에서 기존 코드를 배치5 버전 마이그레이션 가이드이다.