Spring Batch 소스 코드 분석

Toggle Space Navigation Tree
Space Map

Spring Batch Architecture 분석

Job과 Step

Job

  • Job에서부터 실행
    • AbstractJob과 SimpleJob을 통하여 확인 가능

Step

  • Job Restart와 관련된 설정
    • startLimit : 각 Step이 실행할 수 있는 제한 값을 설정할 수 있다. Default 값은 Integer.MAX_VALUE이다.
    • allow-start-if-complete : 실행 완료한 Step을 다시 실행하고자 한다면 이 값을 true로 설정한다. Default 값은 false이다.
  • Step 생성
    • org.springframework.batch.core.step.item.SimpleStepFactoryBean : Step 인스턴스를 생성하기 위한 API.
      • Step 인스턴스를 수동으로 생성하는 것은 상당히 복잡하다. SimpleStepFactoryBean API를 분석해보면 알 수 있다.
      • SimpleStepFactoryBean API는 Step을 실행하기 위하여 필요한 모든 인스턴스를 전달하는 역할을 한다.
      • 실질적인 작업은 TaskletStep에서 처리한다.
      • applyConfiguration API가 Template method 역할을 한다.
    • org.springframework.batch.core.step.item.FaultTolerantStepFactoryBean : Retry, Skip과 관련한 Step을 생성한다.
      • RetryTemplate과 SkipTemplate을 결정하는 역할을 한다.
      • SimpleStepFactoryBean의 API에서 Retry, Skip 처리와 관련된 메써드를 Overriding한다.
  • Step 내부
    • ChunkProvider의 provide() 메써드에서 Item Read와 관련된 작업이 실행된다.
    • ChunkProcessor의 process() 메써드에서 Item Processor와 Item Write와 관련된 작업이 진행된다.
    • ChunkProcessor와 ChunkProvider의 조율을 담당하는 클래스는 ChunkOrientedTasklet이다.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.