JobLauncher에서 SimpleJob을 실행하기 위해 Jobparameters, JobInstance, JobExecution을 설정합니다
이때, JobExecution의 ExecutionContext에서 배치상태를 STARTED로 설정합니다
updateStatus(execution, BatchStatus.STARTED);
SimpleJob에서는 Joblistener를 통해 Job 실행 전 JobExecutionListener를 호출합니다
JobExecutionListnere.beforeJob()
각 Step별 Taslet을 반복해서 실행하며, 그 실행은 StepExecution과 ExecutionContext에 담깁니다
Job이 실행한 후에는 JobExecutionListener를 호출하며
JobExecutionListener.afterJob()
최종 JobExecution에서는 작업상태를 마지막 Step 단계와 동일하게 업데이트합니다
if(stepExecution != null){
execution.upgradeStatus(stepExecution.getStatus());
execution.setExitStatus(stepExecution.getExitStaus());
}
JobBuilderFacotry
--> JobBuilderHelper <-> CommonJobProperties
--> JobBuilderHelper <-> AtomicReference<JobRepository>
<-- SimpleJobBuiler - SimpleJob
<-- JobBuilder -> FlowJobBuilder -> FlowJob
<-- FlowJobBuilder