- Step -
1) Step?

참조 : 강의[[한 번에 끝내는 Spring 완.전.판 초격차 패키지 Online](한 번에 끝내는 Spring 완.전.판 초격차 패키지 Online - 실무밀착 프로젝트(패스트캠퍼스포인트관리하기))]
- 실질적으로 요청을 처리하는 객체.
- Step은 Job과 마찬가지로 행위에 대한 명세서.
- 1개의 Job에 여러개의 Step을 포함할 수 있다.
- 따라서 1개의 JobExecution에 여러개의 StepExecution을 포함할 수 있다.
2) StepExecution
- Step이라는 명세서를 실행시켜 실행된 기록입니다.
- JobExecution가 Job의 실행 정보를 가지고 있는 것 처럼 StepExecution은 Step의 실행정보를 포함.
// Step의 이름
stepExecution.getStepName();
// JobExecution
stepExecution.getJobExecution();
// Step의 시작시간, 종료시간
stepExecution.getStartTime();
stepExecution.getEndTime();
// Execution Context
stepExecution.getExecutionContext();
// Step의 실행 결과
stepExecution.getExitStatus();
// Step의 현재 실행 상태 (Batch Status)
stepExecution.getStatus();
3) StepExecutionContext
- StepExecutionContext는 1개의 Step내에서 공유하는 공간(Context)이다.
4) PlatformTransactionManager
- StepBuilderFactory로 Step을 정의할때 transactionManager를 받을 수 있다.
- EnableBatchProcessing를 추가하면 아래와 같이 기본 transactionManager를 사용할 수 있습니다.
(다만, 프로젝트에서 datasource가 여러개인 경우에는 직접 별도로 transactionManager를 만들어서 사용해야 한다)