[스프링/Spring] 스프링 배치(Spring Batch) 적용하는 방법을 정리한다. 1. 개발환경- Eclipse 2021-06 (4.20.0) - JDK 1.8 - Apache Tomcat v8.5 1. Maven 추가하기1) org.springframework.batch.spring-batch-core
2) org.springframework.spring-test
3) org.springframework.batch.spring-batch-test
2. Job 예제 만들기(Job 작성하기)1) job id는 demojob으로, job에는 1개 이상의 Step 있을 수 있다.- Job에 관한 설명은 아래의 링크에서 볼 수 있다. - 각 스텝의 id는 demoStep01과 demoStep02로 설정한다. - demoStep01이 끝나면, 다음 스텝은 demoStep02가 실행된다.
https://yongku.tistory.com/category/IT/%EC%8A%A4%ED%94%84%EB%A7%81%28Spring%29 'IT/스프링(Spring)' 카테고리의 글 목록 츄르 사려고 코딩하는 집사 yongku.tistory.com 2) Step에 설정한 Tasklet을 Bean 주입한다.- 스프링 배치(Spring Batch)는 Tasklet 방식과 Chunk 방식이 있는데, Tasklet 방식은 단일 Task를 수행한다. - 즉, 각 Step에서는 1개의 정의된 작업만 수행한다.
3) 스프링 배치(Spring Batch)의 metadata를 담당하는 jobRepository를 Bean 주입한다.- Job을 실행시키는 Job launcher와 Job, Step에서 jobRepository에 조회 및 저장을 한다. - 각 JobExecution과 StepExecution을 생성.
4) 스프링 배치(Spring Batch) Job을 실행하는 jobLauncher를 Bean 주입한다.
5) 스프링 배치(Spring Batch)의 transactionManger와 스프링 배치(Spring Batch) job Test를 위해 쓰는 유틸리티인 jobLauncherTestUtils를 각각 Bean 주입한다.
6) 위의 링크에 들어가면, Step에서는 Step 1개에 1개의 itemReader와 1개의 itemWriter, 1개의 itemProcessor를 가진다.- 즉, 1:1 구조로 가지게 된다. - 그래서, chunk를 (itemReader + itemProcessor + itemWriter)로 두는 경우, commit-interval에 의해 5번 반복하게 된다.
7) 전체 코드(demoJob.xml)
3. Job 예제 만들기(*.java)1) Demo01Tasklet.java- Tasklet을 implements한다.
2) Demo02Tasklet.java
3) 스프링 배치(Spring Batch) Job Test Java- Assert.assertEquals(X, Y)는 X와 Y가 같다면 통과.
참고자료https://www.fwantastic.com/2019/12/spring-batch-2-metadata-jobrepository.html [Spring Batch] 스프링 배치 강좌 2. Metadata와 JobRepository 알아보기 www.fwantastic.com |