Dev/Spring

Spring Batch - JobParameter & Scope

호나우지규 2021. 9. 24. 14:01

스프링 배치의 경우 외부 혹은 내부에서 파라미터를 받아 여러 배치 컴포넌트에서 사용할 수 있게 지원하고 있음.

이 파라미터를 Job Parameter 라고 함.

Job Parameter를 사용하기 위해선 항상 Spring Batch 전용 Scope를 선언해야만 함.

크게 @StepScope와 @JobScope 2가지가 있음

  • @Value("#{jobParameters[파라미터명]}") (SpEL로 선언해서 사용하면 됨)

jobParameters 외에도 jobExecutionContext, stepExecutionContext emdeh SpEL로 사용할 수 있음.

@JobScope에선 stepExecutionContext는 사용할 수 없고, jobParameters 와 jobExecutionContext만 사용할 수 있음

 

@JobScope는 Step 선언문에서 사용 가능하고, @StepScope는 Tasklet, ItemReader, ItemWriter, ItemProcessor에서 사용 가능

 

Job Parameter의 타입으로 사용할 수 있는 것은 Doule, Long, Date, String이 있음

LocalDate, LocalDateTime 없어 String으로 받아 타입변환을 해서 사용해야 .

 

출처 : https://jojoldu.tistory.com/330?category=902551