1. Listener 클래스를 하나 선언한 후
public class 클래스명 implements JobExecutionListener{
}
해준다.
2. 클래스 내부에 beforeJob을 오버라이드 해준다.
@Override
public void beforeJob(JobExecution jobExecution) {
ExecutionContext executionContext = jobExecution.getExecutionContext();
executionContext.put("키", 데이터가 선언된 변수);
}
3. 이렇게 넣어주면 된다.
4. 사용할 때에는 아래와 같이 @Value와 jobExecutionContext에서 키값을 이용해 데이터를 꺼내와 미리 저장해둔 데이터 자료구조에 맞는 타입과 변수명을 선언하고 사용하면된다.
@Value("#{jobExecutionContext['키']}")
List<String> 변수명;
5. 객체 타입인 경우에는 Serialize 오류가 발생한다. 객체에 implement Serializer를 해주면 사용할 수 있을 것 같다.
6. 생성된 리스너 객체를 잡의 리스너에 추가해 사용한다.
@Bean
public Job simpleJob(){
return jobBuilderFactory.get("simpleJob")
.start(simpleStep())
.listener(생성한 listener 클래스 여기에 넣기)
.build();
}
'프로그래밍 > SpringBatch' 카테고리의 다른 글
[Spring Batch] Duplicate entry '0' for key 'PRIMARY' 오류 (0) | 2022.07.22 |
---|---|
[SpringBatch] 스프링 배치 도메인 간단 정리 (0) | 2022.06.26 |