Spring Batch ‐ @JobScope & @StepScope 어노테이션 - dnwls16071/Backend_Study_TIL GitHub Wiki
📚 @JobScope & @StepScope
Scope : 스프링 컨테이너에서 빈이 관리되는 범위
스프링 배치 스코프 : @JobScope, @StepScope
Job과 Step의 빈 생성과 실행에 관여하는 스코프
프록시 모드를 기본값으로 하는 스코프
스프링 컨테이너가 처음 구동될 때는 실제 구현체가 아닌 프록시 객체가 빈으로 등록된다. 이 프록시 객체는 실제 객체의 생성을 지연시키는 역할을 한다. 실제 Job이나 Step이 실행될 때 비로소 프록시를 통해 실제 구체 클래스의 인스턴스가 생성되고 해당 메소드가 실행된다.
@Value 어노테이션을 사용해 값을 주입하고 빈의 실행 시점에 해당 값을 참조할 수 있으며 지연 로딩이 가능해진다.
프록시 모드로 빈이 선언되고 애플리케이션 구동 시점에 빈의 프록시 객체가 생성되어 실행 시점에 실제 빈을 호출한다.
@JobScope는 Step 선언문에 정의한다.
@StepScope는 Tasklet이나 ItemReader, ItemProcessor, ItemWriter 선언문에 정의한다.
📚 @JobScope & @StepScope 아키텍처
@JobScope, @StepScope 어노테이션이 붙은 스프링 빈에 대해선 프록시 객체가 생성된다.