본문 바로가기

SpringBatch

스프링 배치 실행 - JOB

[스프링 배치 실행 - 배치 초기화 설정]

1.JobLauncherApplicationRunner

  -Spring Batch 작업을 시작하는 ApplicationRunner로서 BatchAutoConfiguration에서 생성됨

  -스프링 부트에서 제공하는 ApplicationRunner의 구현체로 어플리케이이 구동되자 마자 실행됨

  -기본적으로 빈으로 등록된 모든 job을 실행시킨다.

 

2.BatchProperties

  -Spring Batch의 환경 설정 클래스

 -Job이름, 스키마 초기화 설정, 테이블 Prefix 등의 값을 설정할 수 있다.

 -application.properties or application.yml 파일에 설정함

    -batch:

        job:

           name: ${job.name:NONE}

        initialize-schema: NEVER

        tablePrefix: SYSTEM

 

3. Job 실행 옵션

  -지정한 Batch Job만 실행하도록 할 수 있음

  -spring.batch.job.names: ${job.name.NONE}

  -어플리케이션 실행시 Programe arguments로 job 이름을 입력한다.

    - --job.name=helloJob

    - --job.name=helloJob,simpleJob (하나 이상의 job을 실행 할 경우 쉼표로 구분해서 입력함)

 

[스프링 배치 실행 - JobBuilderFactory / JobBuilder]

1. 스프링 배치는 Job과 Step을 쉽게 생성 및 설정할 수 있도록 util 성격의 빌더 클래스들을 제공함

2. JobBuilderFactory

  - JobBuilder를 생성하는 팩토리 클래스로서 get(String name) 메서드 제공

  - JobBuilderFactory.get("jobName") - Job의 이름을 문자열로 설정할 수 있다. 그럼 내부적으로 JobBuilder가

                                                              JobName의 이름을 받아서 Job을 생성할 수 있는 로직으로 구현되어 있습니다.

    -"jobName"은 스프링 배치가 Job을 실행시킬 때 참조하는 Job의 이름

3. JobBuilder

  - Job을 구성하는 설정 조건에 따라 두 개의 하위 빌더 클래스를 생성하고 실제 Job 생성을 위임한다.

  - SimpleJobBuilder

    - SimpleJob을 생성하는 Builder 클래스

    - Job 실행과 관련된 여러 설정 API를 제공한다.

  - FlowJobBuilder

    - FlowJob을 생성하는 Builder 클래스

    - 내부적으로 FlowBuilder를 반환함으로써 Flow 실행과 관련된 여러 설정 API를 제공한다.