#11 spring batch: StepContribution

This commit is contained in:
haerong22
2022-06-05 17:18:16 +09:00
parent 7ce9a013f2
commit b86d2336f0
2 changed files with 54 additions and 1 deletions

View File

@@ -0,0 +1,53 @@
package io.springbatch.basic.step.stepcontribution;
import lombok.RequiredArgsConstructor;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@RequiredArgsConstructor
public class StepContributionConfiguration {
private final JobBuilderFactory jobBuilderFactory;
private final StepBuilderFactory stepBuilderFactory;
@Bean
public Job job() {
return jobBuilderFactory.get("job")
.start(step1())
.next(step2())
.build();
}
/*
Tasklet(ChunkOrientedTasklet) 이 StepExecution 생성
StepExecution 이 StepContribution 생성
ChunkOrientedTasklet 실행
ItemReader, ItemProcessor, ItemWriter 에서 수행된 데이터 StepContribution 에 저장
StepExecution 완료되는 시점에 apply 메소드 호출 StepContribution 에 저장된 데이터 StepExecution 에 업데이트
*/
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet((contribution, chunkContext) -> {
System.out.println("step1 was executed");
return RepeatStatus.FINISHED;
})
.build();
}
@Bean
public Step step2() {
return stepBuilderFactory.get("step2")
.tasklet((contribution, chunkContext) -> {
System.out.println("step2 was executed");
return RepeatStatus.FINISHED;
})
.build();
}
}

View File

@@ -9,7 +9,7 @@ import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
//@Configuration
@RequiredArgsConstructor
public class StepExecutionConfiguration {