Spring Batch 5 migration guide
개요
Spring Batch 5.0부터 JobBuilderFactory와 같은 일부 팩토리 클래스들이 deprecated 되었고, 대신 직접 빌더를 생성하는 방식으로 변경
- 팩토리 메서드는 보통 매개변수가 숨겨져 있는 경우가 많아 코드의 동작을 이해하는 데에 다소 어려움 해결
Spring Batch 5.0 Migration Guide
- tasklet, chunk
- TransactionManager 추가
- PlatformTransactionManager는 Spring이 제공하는 트랜잭션 관리 인터페이스로, 일반적으로 데이터베이스와 관련된 트랜잭션을 관리합니다.
- JobConfig 또는 BatchConfig에서 주입받는 PlatformTransactionManager는 보통 Spring이 관리하는 DataSourceTransactionManager나 JpaTransactionManager와 같은 구체적인 구현체를 사용합니다. 이 구현체들은 애플리케이션에서 설정된 데이터베이스 연결(즉, DataSource나 EntityManagerFactory)을 기반으로 트랜잭션을 관리합니다.
// Sample with v4 @Configuration @EnableBatchProcessing public class MyStepConfig { @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Step myStep() { return this.stepBuilderFactory.get("myStep") .tasklet(..) // or .chunk() .build(); } // Sample with v5 @Configuration @EnableBatchProcessing public class MyStepConfig { @Bean public Tasklet myTasklet() { return new MyTasklet(); } @Bean public Step myStep(JobRepository jobRepository, Tasklet myTasklet, PlatformTransactionManager transactionManager) { return new StepBuilder("myStep", jobRepository) .tasklet(myTasklet, transactionManager) // or .chunk(chunkSize, transactionManager) .build(); } }
- JobBuilderFactory → JobBuilder
- Class JobBuilder :
- JobBuilder(String name, JobRepository jobRepository)
- Class JobBuilder :
- StepBuilderFactory → StepBuilder
- get
// Sample with v4
@Configuration
@EnableBatchProcessing
public class MyStepConfig {
@Autowired
private StepBuilderFactory stepBuilderFactory;
@Bean
public Step myStep() {
return this.stepBuilderFactory.get("myStep")
.tasklet(..) // or .chunk()
.build();
}
}
// Sample with v5
@Configuration
@EnableBatchProcessing
public class MyStepConfig {
@Bean
public Tasklet myTasklet() {
return new MyTasklet();
}
@Bean
public Step myStep(JobRepository jobRepository, Tasklet myTasklet, PlatformTransactionManager transactionManager) {
return new StepBuilder("myStep", jobRepository)
.tasklet(myTasklet, transactionManager) // or .chunk(chunkSize, transactionManager)
.build();
}
}
'IT' 카테고리의 다른 글
가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장 (1) | 2024.10.06 |
---|---|
[VMware Tanzu] Spring Boot 밋업 with Josh Long (0) | 2024.09.29 |
몽고디비 모델링, 자주사용하는 연산자 정리 (0) | 2024.08.19 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 2장 - 개략적인 규모 추정 (0) | 2024.07.28 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 1장 - 사용자 수에 따른 규모 확장성 (2) (0) | 2024.07.21 |
댓글
이 글 공유하기
다른 글
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장
가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장
2024.10.06 -
[VMware Tanzu] Spring Boot 밋업 with Josh Long
[VMware Tanzu] Spring Boot 밋업 with Josh Long
2024.09.29 -
몽고디비 모델링, 자주사용하는 연산자 정리
몽고디비 모델링, 자주사용하는 연산자 정리
2024.08.19 -
가상 면접 사례로 배우는 대규모 시스템 설계 기초 2장 - 개략적인 규모 추정
가상 면접 사례로 배우는 대규모 시스템 설계 기초 2장 - 개략적인 규모 추정
2024.07.28