Spring Batch 4.x -> 5.x 변경 기록용

0

Spring Batch 5.x 변경 사항 (https://docs.spring.io/spring-batch/docs/current/reference/html/whatsnew.html)

  • Java 17 Requirement
  • Major dependencies upgrade
  • Batch infrastructure configuration updates
  • Batch testing configuration updates
  • Job Parameters handling updates
  • Execution context serialization updates
  • SystemCommandTasklet updates
  • New features
  • Pruning

Spring Boot 2 -> Spring Boot 3 migrate from batch (https://www.baeldung.com/spring-boot-3-migration#spring-batch)

@EnableBatchProcessing Discouraged

@EnableBatchProcessing을 권장하지 않음.
@EnableBatchProcessing or DefaultBatchConfiguration 을 상속하여, 구현할 경우 autoconfiguration 기능을 사용할 수 없음

Running Multiple Jobs

이전 버전에는 여러 Batch Job을 실행 할 수 있었지만, 지금은 여러 Batch Job이 실행 불가능.
spring.batch.job.name 속성을 사용하여, 단일 Batch Job이 어플리케이션 실행 시 동작함.

Spring Batch 5.x Migrate 설정하기

JobBuilder(String name) or JobBuilderFactory 는 depreacted 처리됨

  • JobBuilder(String name, JobRepository jobRepository) 사용

StepBuilder(string name) or StepBuilderFactory는 deprecated 처리됨

  • StepBuilder(String name, JobRepository jobRepository) 사용

@EnableBatchProcssing annotation 제거

  • Job을 Custom 하게 구현하기 위해 Job별로 extends DefaultBatchConfiguration 정의
    ex) JobNameConfiguration extends DefaultBatchConfiguration 에서 Bean으로 정의된 Job을 등록
    Batch에서 사용할 DataSource 및 Transaction 도 custom하게 정의 (@Override)
    ex) BatchDataSource extends DefaultBatchConfiguration
profile
어제보다 오늘이 더 나은 개발자

0개의 댓글