diff --git a/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepcontribution/StepContributionConfiguration.java b/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepcontribution/StepContributionConfiguration.java new file mode 100644 index 00000000..49148055 --- /dev/null +++ b/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepcontribution/StepContributionConfiguration.java @@ -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(); + } +} diff --git a/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepexecution/StepExecutionConfiguration.java b/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepexecution/StepExecutionConfiguration.java index 853ce41d..0829a339 100644 --- a/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepexecution/StepExecutionConfiguration.java +++ b/spring-batch/basic/src/main/java/io/springbatch/basic/step/stepexecution/StepExecutionConfiguration.java @@ -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 {