JobParameters느 배치를 실행에 필요한 값을 parameter를 통해 외부에서 주입한다.
JobParameters는 외부에서 주입된 Parameter를 관리하는 객체이다.
Parameter를 접근하는 방법은 크게 두가지이다.
JobParameters 객체를 통해 접근
((contribution, chunkContext) -> {
StepExecution stepExecution = contribution.getStepExecution();
JobParameters jobParameters = stepExecution.getJobParameters();
String param = jobParameters.getString("chunksize","10");
}
다른 방법은 @Value를 통한 접근(Value 애노테이션은 롬복이 아닌 Spring 거를 사용해야한다)
@Bean
@JobScope
public Step practiceStep(@Value("#{jobParameters[chunkSize]}") String chunkSize){
return stepBuilderFactory.get("practiceStep")
.<String,String>chunk(StringUtils.isNotEmpty(chunkSize) ? Integer.parseInt(chunkSize) : 10)
.reader(this.practiceReader())
.processor(this.practiceProcessor())
.writer(this.practiceWriter())
.build();
}
@Value를 사용할때는 Step Bean에 파라미터로 @Value("#{jobParameters[chunkSize]") 를 사용하면 된다.
Intellij에서 파라미터 주는 방법
Program arguments 로 변수를 준 다음 실행하면 된다!
chunkSize가 20으로 잘 나오는 걸 볼 수 있다.
'Spring Batch' 카테고리의 다른 글
Spring Batch - csv 파일 읽기 (0) | 2022.12.26 |
---|---|
Spring Batch - csv파일 쓰기 (0) | 2022.12.23 |
Spring Batch - JdbcCursorItemReader (0) | 2022.12.22 |
Spring Batch Chunk 기초학습 (0) | 2022.12.19 |
Spring Batch 동작 순서 (Step) (0) | 2022.12.16 |