[Spring Batch] 스프링 배치 강좌 1. 프로그래밍의 꽃. 스프링 배치 Hello World!스프링 배치 강좌 목록: https://www.fwantastic.com/p/spring-batch.html 시작하기에 앞서 스프링 배치 Intro를 읽지 않았다면 먼저 보고 오자. 새로운 것을 배울때 Hello World를 빼먹을수 없다. 초 심플한 배치 job을 만들어보자. 프로젝트 만들기STS (Spring Tools Suite) 기준으로 작성되었다. File -> New -> Maven Project -> Create a simple project (skip archetype selection) 클릭. 다음과 같이 입력.
앞으로 매번 새로운 프로젝트를 만들지 않고 하나에 프로젝트에 예제들을 계속 추가하자. pom.xmlpom.xml은 디펜던시를 관리하는 설정 파일이다. 스프링 개발자라면 메이븐을 알아야한다. 만약 모른다면 구글링 해보자. 프로젝트 root level에 pom.xml 파일을 생성하자. src 폴더와 같은 레벨에 있어야 한다. 이번 예제에선 필요 없는 디펜던시들도 일부러 넣었다. 한 프로젝트에 여러 예제를 넣을 거라서 미리 넣었으니 그냥 이런 것들을 쓰게 될 거구나 라고만 알고 있자. 디펜던시마다 주석을 달았으니 한 번씩 읽어보자.
taskletIntro에서 step을 간단히 보았다. 설명하지 않은 tasklet 이란게 나오는데, step 정의하는 법을 보자.
이처럼 chunk (reader + processor + writer) 를 사용하면 읽기 -> 가공하기 -> 쓰기의 반복인데 chunk 없이 한 번만 실행하도록 하는 것도 가능하다. src/main/java에 com.fwantastic.example1 패키지를 만들고 아래 클래스를 추가하자. HelloWorldTasklet.java
execute 메소드가 null을 반환하면 RepeatStatus.FINISHED 를 반환하는 것과 같은 의미를 가진다. 한마디로 반복 없이 한 번만 실행된다는 소리다.
HelloWorldTasklet은 tasklet 인터페이스의 구현체다. step이 실행되면 배치 프레임워크가 알아서 execute 메소드를 찾아 실행한다. 그럼 작업 시작... 과 작업 완료! 메세지를 출력하고 끝난다. job다음으로 job을 작성해보자. src/main/resources 폴더에 com/fwantastic/example1 폴더를 만들고 아래의 xml 파일을 추가하자. hello_world_job.xml 테스트배치 job을 다 만들었으니 테스트 해보자. src/test/java에 com.fwantastic.example1 패키지를 만들고 아래 junit 클래스를 추가하자. TestHelloWorldJob.java 실행하면 콘솔에 여러 메세지들이 찍혀있을 것이다. INFO: Job: [FlowJob: [name=helloWorldJob]] launched with the following parameters: [{random=278562}] Dec 11, 2019 9:30:46 PM org.springframework.batch.core.job.SimpleStepHandler handleStep INFO: Executing step: [helloWorldStep] 작업 시작... 작업 완료! INFO: Job: [FlowJob: [name=helloWorldJob]] completed with the following parameters: [{random=278562}] and the following status: [COMPLETED] |