728x90
스프링 배치 초기화 설정 클래스
BatchAutoConfiguration
- 스프링 배치가 초기화 될 때 자동으로 실행되는 설정 클래스다.
- Job을 수행하는 JobLauncherApplicationRunner 빈을 생성한다.
- BatchAutoConfiguration은 JobLauncher 인터페이스를 구현하는 모든 구현체를 실행시킨다.
- JobLauncherApplicationRunner 도 JobLauncher 인터페이스의 구현체 중 하나다.
SimpleBatchConfiguration
- JobRepository, JobLauncher, JobBuilderFactory, StepBuilderFactory를 생성한다.
- 스프링 배치의 주요 구성 요소를 생선한다.
- 주요 구성 요소들이 프록시 객체로 생성된다.
- 프록시 객체로 생성시키면 컴파일 시점이 아닌 런타임 시점에서 객체를 전략적으로 변경해서 실행시킬 수 있다. 즉, 전략패턴이라 할 수 있다.
- 프록시 객체에서 실제 객체의 실행 전, 후 공통적인 기능을 처리하기 위한 목적도 있다. 즉, AOP 다.
- 프록시 객체는 하나의 빈으로 생성하고, 실제 객체는 스레드별 혹은 특정한 주체에 따라 독립적인 Target 객체로 개별 생성해서 제어하기 위한 목적도 있다. 스레드에 안전한 객체를 만드는 방법 중 하나다.
- BatchConfigurer가 제공하는 구성 리소스에서 이러한 구성 요소가 필요할 때 구성 주기가 개발되는 것을(가능한 많이) 방지하기 위함이다.
- 주요 구성 요소들이 프록시 객체로 생성된다.
- BatchConfigurer 인터페이스를 구현하여 사용자 정의를 할 수 있다.
BatchConfigurerConfiguration
- BatchConfigurerConfiguration클래스는 내부에 BasicBatchConfigurer 와 JpaBatchConfigurer 의 설정 클래스를 가지고 있다.
- BasicBatchConfigurer
- SimpleBatchConfiguration에서 생성한 프록시 객체의 실제 대상 객체를 생성하는 설정 클래스다.
- 빈으로 의존성 주입을 받아서 주요 객체들을 참조해서 사용할 수 있다.
- JpaBatchConfigurer
- JPA 관련 객체를 생성하는 설정 클래스다.
- BasicBatchConfigurer 클래스의 자식 클래스다.
- BasicBatchConfigurer 클래스와 JpaBatchConfigurer는 BatchConfigurer 인터페이스를 구현하여 사용했다. 이처럼 사용자 정의 설정 클래스를 만들어서 BatchConfigurer 인터페이스를 구현하면 된다.
스프링 배치 초기화 설정 클래스 실행 순서
@EnableBatchProcessing 실행 → SimpleBatchConfiguration 클래스 실행 → BatchConfigurerConfiguration 클래스 실행 → BatchAutoConfiguration 클래스 실행
728x90
'[ Spring ] > Batch' 카테고리의 다른 글
[Batch] 도메인 객체 이해 (0) | 2022.11.23 |
---|---|
[Batch] DB 스키마 생성 및 메타 데이터 테이블 (0) | 2022.11.20 |
[Batch] Job 만들어서 실행해보기 (0) | 2022.10.23 |