작성
·
1.2K
0
기존에 하던 프로젝트의 스프링 버전이 3.0.0이라 배치의 버전 또한 5.0을 사용하게 됐습니다. excute 메소드가 실행되지 않는 이유를 알 수 있을까요..??
package com.jojoldu.book.freelecspringbootwebservice.config;
import lombok.RequiredArgsConstructor;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.batch.core.configuration.support.DefaultBatchConfiguration;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.repeat.RepeatStatus;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableBatchProcessing
@RequiredArgsConstructor
public class HelloJobConfiguration extends DefaultBatchConfiguration {
@Bean
public Job myJob(JobRepository jobRepository, Step myStep1, Step myStep2) {
System.out.println("this is job");
return new JobBuilder("myJob", jobRepository)
.start(myStep1)
.next(myStep2)
.build();
}
@Bean
public Step myStep1(JobRepository jobRepository) {
System.out.println("this is step1");
return new StepBuilder("myStep1", jobRepository)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("step1 started");
return RepeatStatus.FINISHED;
}
}, getTransactionManager())
.build();
}
@Bean
public Step myStep2(JobRepository jobRepository) {
System.out.println("this is step2");
return new StepBuilder("myStep2", jobRepository)
.tasklet(new Tasklet() {
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
System.out.println("step2 started");
return RepeatStatus.FINISHED;
}
}, getTransactionManager())
.build();
}
}
답변 2
1
강의에서 제공하는 소스와는 많이 다른 것 같습니다.
소스를 실행해 봐야 정확한 원인을 알 수 있을 것 같습니다.
소스 공유 가능할까요?
그리고 버전차이로 인한 부분은 저도 자세하게 살펴보지 않았기 때문에 정확한 답변이 어려울 수 있는점 양해 부탁드립니다.
0
@EnableBatchProcessing 어노테이션을 제외하시면 됩니다.
스프링 배치 5.x 에서는 더이상 @EnableBatchProcessing 어노테이션을 필요하지 않게 되었습니다.
https://github.com/spring-projects/spring-batch/issues/4232