occidere / TIL

Today I Learned
GNU General Public License v3.0
65 stars 1 forks source link

Spring Batch 에서 StepExecutionListener 의 beforeStep, afterStep 호출 순서 #137

Open occidere opened 4 years ago

occidere commented 4 years ago

Spring Batch 에서 StepExecutionListener 의 beforeStep, afterStep 호출 순서

TL; DR

상세 호출 순서

  1. 스프링 배치 처음 실행 시 내부적으로 StepListener 들을 ArrayList 에 담음

    • 순서: Reader -> Writer -> Processor
  2. 위 ArrayList 에 담긴 Listener 들의 BeforeStep 을 호출함

    • 순서: Reader's BeforeStep -> Writer's BeforeStep -> Processor's BeforeStep
  3. read, process, write 작업 수행

  4. 이후 Listener 가 담긴 ArrayList 를 reverse 함 (Collections.reverse())

    • 순서: Processor -> Writer -> Reader
  5. reverse 된 Listener 의 ArrayList에 담긴 AfterStep 을 호출함

    • 순서: Processor's AfterStep -> Writer's AfterStep -> Reader's AfterStep

순서 지정하기