@JobScope, @StepScope

Haechan Kim·2024년 2월 4일
0

Spring Batch

목록 보기
2/4

Scope

  • 스프링 컨테이너에서 Bean이 관리되는 범위

@JobScope, @StepScope는 스프링 배치 사용시 Job과 Step의 Bean 생성, 실행에 관여하는 스코프.

@JobScope, @StepScope가 선언되면 Bean의 생성이 어플리케이션 구동시가 아닌, Bean의 실행시점에 이루어짐.
각각 Job, Step이 실행되는 시점에 Bean이 생성됨.

-> 프록시 모드로 빈이 선언 -> 애플리케이션 구동시에는 빈의 프록시 객체 생성 -> 네소드 실행 시점에서 실제 빈 호출

JobScope

  • Step 선언문에 정의
  • Job 실행 시점에 빈을 생성하고 Job 종료 시점에 제거.
    JobParameter를 사용하여 빈 생성 시점에 값 주입 가능.

StepScope

  • Tasklet이나 ItemReader, ItemWriter, ItemProcessor 선언문에 정의
  • Step 실행 시점에 빈을 생성하고 Step 종료 시점에 제거.
  • StepContext를 사용하여 빈 생성 시점에 값을 주입 가능.
  • Late Binding 가능

사용 예시

Job/Step 실행 중에 상태를 저장하는 빈
Job/Step 실행마다 다른 값을 사용하는 빈
Job/Step 실행 중에 로그를 기록하는 빈

0개의 댓글