Batch job을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고
컨트롤하는데 필요한 모든 정보를 가지고 있는 도메인 객체를 의미합니다
단순한 단일 태스크 뿐만 아니라 입력처리 및 출력과 관련된 복잡한 비즈니스 로직을
포함하는 모든 설정을 담고 있습니다
배치작업을 어떻게 구성하고 실행할 것인지 Job의 세부작업을 Task 기반으로 설정하고
명세해놓은 객체로 모든 Job은 하나 이상의 step으로 구성됩니다
가장 기본이 되는 클래스로서 Tasklet 타입의 구현체들을 제어합니다
멀티 스레드 방식으로 Step을 여러개로 분리해서 실행합니다
Step 내에서 Job을 실행하도록 합니다
Step 내에서 Flow를 실행하도록 합니다
Job에서 execute()로 여러 Step을 실행하고, 각 Step이 각자의 Tasklet을 execute()해서
실행합니다
Tasklet에는 Reader, Writer 같은 각자의 작업이 존재합니다
직접 실행한 Tasklet을 실행하는 방법과
return this.stepBuilderFactor.get("step").tasklet(myTastlet()).build();
ChunkOrientedTasktlet을 실행하는 방법이 존재합니다
return this.stepBuilderFactory.get("step").<Member, Member>chunk(100).reader(reader()).writer(writer()).build();
Step에서 Job을 실행합니다
return this.stepBuilderFactory.get("step").<Member,Member>chunk(100).reader(reader()).writer(writer()).build();
Step에서 Flow를 실행합니다
return this.stepBuilderFactory.get("step").flow(myFlow()).build();