[spring Batch Series] 04.02.listener
March 20, 2025
Listener, Event
배치 리스너
- 배치 실행의 다양한 단계에 Hook을 걸도록 허용
- 작업 실행, 단계 실행 및 청크 처리 모니터링 및 사용자 정의를 위한 메커니즘을 제공
- 리스너는 작업 실행에서 더 풍부한 경험을 주며, 로깅, 오류 처리, 통계 수집 및 알림과 같은 작업을 가능하게 한다.
사용하는 이유
- 로직 분리 : 관심사 분리로 각 로직을 격리할 수 있다.
- 향상된 모니터링 : 다양한 단계에서 추적 및 로깅을 허용하며, 이는 디버깅 및 유지 보수에 중요
- 커스텀 동작 : 작업 실행 시작, 종료, 실패 및 단계 실행 시 발생해야 하는 커스텀 동작을 구현 가능
종류
JobExecutionListner
- 전체 작업 실행 이전 및 이후에 코드를 실행하도록 설계
- 작업 매개변수를 초기화하거나, 작업의 시작과 끝을 로깅하거나, 작업 완료 후 후처리를 위해 사용할 수 있다.
StepExecutionListener
- 작업 내 개별 단계에 초점을 맞추고 있다.
- 단계의 처리, 전처리, 후처리 추적이 유용
ItemReadListener
- 청크 처리 중 읽기와 관련이 있다.
- 읽을 때마다 호출된다.
ItemProcessListener
- 항목이 변환되는 처리 단계에 호출
- 사용자 정의 처리 로직이나 로깅을 구현할 수 있다.
ItemWriteListener
- 쓰기에 관련이 있다.
- 항목이 쓰이기 전후에 훅을 제공한다.