24.06.26 19:48 작성
·
596
·
수정됨
9
5버전으로 강의 따라가면서 정리하고 있습니다(현재진행중). 공유하고자 올려봅니다.
혹여나 틀린점 있으면 지적해주세용.
Execution context serialization Updates
https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide
ExecutionContext에 Base64로 인코딩된 데이터가 저장됩니다.
@Configuration
public class BatchConfig {
@Bean
public ExecutionContextSerializer jacksonSerializer() {
return new Jackson2ExecutionContextStringSerializer();
}
}
강의처럼 데이터를 json으로 저장하고 싶으면, jackson-core의존성을 추가한 후, 위 설정클래스를 정의합니다.
섹션2~3
@EnableBatchProcessing 을 쓰게되면 BatchAutoConfiguration이 적용되지 않는다.
자동 구성과 수동 구성 요소가 동시에 존재할 때 발생할 수 있는 모호성과 충돌을 피하기 위해
BuilderFactory대신 JobBuilder, StepBuilder 직접 사용
팩토리 클래스들은 종종 불필요한 복잡성을 추가하고, Spring Batch 구성의 일관성을 떨어뜨림.
직접 사용해서 더 많은 제어 권한 획득
Tasklet 사용시 , PlatformTransactionManager
함께사용 (단일 사용 deprecated)
배치 설정 클래스 BasicBatchConfigurer
→ DefaultBatchConfiguration
으로 변경
섹션 3 - JobLauncher
주입받은 JobLauncher가 프록시객체가 아닌 실제 객체라서 DefaultBatchConfiguration
에서 JobLauncher를 얻어올 필요없이 바로 타입캐스팅 가능
섹션 4 - 배치 초기화 설정
spring:batch:job: names(x) -> name
실행 할 job을 찾지 못하면 예외가 발생합니다.
인텔리제이에 환경설정으로 프로그램 인수를 한개만 할당할 수 있게 변경되었습니다.
파라미터 관련해서는 코드로 할당해줘야 합니다.
multiple jobs 실행 불가능.
JobLauncherApplicationRunner 의 executeLocalJobs 메서드에서 split으로 job 이름을 구분하는 코드가 삭제되었습니다.
섹션 7 - 스프링 배치 청크 프로세스 이해
chunk사용시 , PlatformTransactionManager
함께사용 (단일 사용 deprecated)
ItemWriter의 write(List<? extends String> items ) -> write(Chunk<? extends String> chunk)
Items에 접근하려면 getItems로 꺼내야합니다.