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으로 받아 타입변환을 해서 사용해야 함.