@EnableBatchProcessing -> DefaultBatchConfiguration
- 배치 작업 구성 및 실행에 필요한 유틸리티 빈을 자동으로 설정
- Spring Batch 5.0
- 둘 중 하나만 사용
- 선언적 vs 프로그래밍
- @EnableBatchProcessing 사용은 권장하지 않음
Batch 아키텍처
Chunk-oriented & AbstractPagingItemReader
- 페이징 기능을 제공하는 기본 abstract 클래스
- AbstractPagingItemReader를 상속하는 클래스
> JdbcPagingItemReader
> JpaPagingItemReader
ClassifierComposite-ItemWriter
- 분기에 따라 적절한 ItemWriter에게 전달
- thread-safe
- 함께 사용하면 유용한 프로세서는 ClassifierCompositeItemProcessor
FlatFileItemWriter
- LineAggregator
> FieldExtractor가 리턴한 object[]를 어떻게 String으로 변환할 것인지를 정의하는 인터페이스
> 주로 delimiter와 link break를 정하는 것이 관심사
- FieldExtractor
> 객체에서 각 필드를 추출해서 그것을 Object[]로 반환하는 인터페이스
> 어떤 필드를 추출할지, 말 지를 결정하는 것이 관심사
@SpringBatchTest
- 쉽게 생각해서 테스트 환경에서 사용하는 "DefaultBatchConfiguration" 클래스
- 다음 Bean들을 등록
> JobLauncherTestUtils
> JobRepositoryTestUtils
> StepScopeTestExecutionListener 및 JobScopeTestExecutionListener
https://docs.spring.io/spring-batch/reference/job/java-config.html
https://docs.spring.io/spring-batch/reference/domain.html