목차
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 객체가 실행된다.