반응형
프로젝트 생성하기😊
개발환경
Intellij
Spring Boot 2.5.1
Java 8
Gradle
JPA
MySQL
프로젝트명은 마음대로 적어주자 ( 누구 마음 대로?? 제니퍼 마음대로~뾰로롱😁🙌 )
요로코롬 추가해서 프로젝트를 생성하자❗❗
JOB, Step 생성하기🤔
Spring Batch를 사용하기 위해 BatchTestApplication.java 파일에 @EnableBatchProcessing을 추가해준다❗
배치 기능을 사용하기 위해서는 필수로 추가해주어야한다😘
그럼 이제 코드를 작성해보자❗
job이라는 패키지를 하나 만들고 BatchConfig.java 파일을 생성한 후 코드를 작성하자!
package com.example.batchtest.job;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Slf4j
@RequiredArgsConstructor
@Configuration
public class BatchConfig {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
@Bean
public Job testJob() {
return jobBuilderFactory.get("testJob")
.start(testStep())
.build();
}
@Bean
public Step testStep() {
return stepBuilderFactory.get("testStep")
.tasklet((contribution, chunkContext) -> {
log.info("=====================testStep 실행===============");
return RepeatStatus.FINISHED;
})
.build();
}
}
Spring Batch의 모든 Job은 @Configuration으로 등록해서 사용한다❗
Spring Batch에서 Job이란 하나의 배치 작업 단위라고 생각하면된다❗❗
Job안에는 여러개의 Step이 존재할 수 있고, Step안에는 하나의 Tasklet 혹은 하나의 Reader&Processor&Writer가 존재한다😀
위의 그림을 보면 Step안에 Tasklet과 Reader&Processor&Writer이 함께 존재할 수 있는것처럼 보이지만....❗
Step안에는 하나의 Tasklet만 존재하거나 하나의 Reader&Processor&Writer 묶음만 존재 할 수 있다.
두근두근 Batch 실행하기😮
간단하게 Job과 Step을 생성했으니 실행해보자❗❗
BatchTestApplication.java의 main 메소드를 실행해보자🤞
실행된 로그를 보면....❗❗ 두둥❗❗ 배치가 실행되었다😮😮
굉장히 어려울거같았던 배치가 이렇게나 쉽게😮 다음엔 Mysql 환경에서 Batch를 실행시켜보자❗😊
반응형
'Spring Batch' 카테고리의 다른 글
Spring Batch 개발기 ( 5. 영화진흥위원회 API ) (0) | 2021.09.09 |
---|---|
Spring Batch 개발기 ( 4. MetaData테이블 ) (1) | 2021.07.16 |
Spring Batch 개발기 ( 3. Mysql 사용하기 ) (0) | 2021.06.25 |
Spring Batch 개발기 ( 1. Spring Batch란?? ) (0) | 2021.06.23 |
Spring Batch 개발기 (0) | 2021.06.23 |