Search
Duplicate

3. Job, Step, tasklet

목차

1. Hello Spring Batch 구동해보기

우선, 직접 코드를 작성해서 Hello World를 출력해보는게 개발 공부 시작 국룰이기에 Hello Spring Boot부터 찍어보고, 하나씩 살펴보자.
@Configuration @RequiredArgsConstructor public class HelloJobConfiguration { private final JobBuilderFactory jobBuilderFactory; private final StepBuilderFactory stepBuilderFactory; @Bean public Job helloJob() { return jobBuilderFactory.get("helloJob") .start(helloStep()) .build(); } @Bean public Step helloStep() { return stepBuilderFactory.get("helloStep") .tasklet((contribution, chunkContext)->{ System.out.println("========================="); System.out.println("Hello Spring Batch"); System.out.println("========================="); return RepeatStatus.FINISHED; }).build(); } }
Java
복사
정상적으로 콘솔창에 Hello Spring Batch 를 출력하는걸 확인할 수 있다. 이제 이 코드의 흐름과 의미에 대해 살펴보자.
1.
@Configuration
: 하나의 배치 Job을 정의하고 빈 설정을 한다.
2.
JobBuilderFactory, StepBuilderFactory
: 각각 Job, Step을 생성하는 빌더 팩토리다.
3.
Job
: helloJob이라는 이름으로 Job을 생성한다.
4.
Step
: helloStep이라는 이름으로 Step을 생성한다.
5.
tasklet
: Step안에서 단일 태스크로 수행되는 로직을 수행한다.

Flow

jobBuilderFactory.get(”helloJob”)으로 Job이 생성되면 start(helloStep)으로 Step을 실행하고,
stepBuilderFactory.get(”helloStep”)으로 생성된 Step이 Job에 의해 구동되면 tasklet()을 실행하고,
tasklet(contribution, chunkContext)→{…}) 으로 생성된 Tasklet 객체가 실행된다.

다음 글

이전 글