SpringBatch 5.1.1中JobBuilder已弃用的解决方法求助
解决Spring Batch 5.1.1中JobBuilder弃用的问题
Spring Batch 5.1对Job构建机制做了进一步重构,JobBuilder被标记为弃用,官方推荐使用以下两种方式替代:
方式一:使用Jobs静态工具类(推荐,写法简洁)
Jobs是Spring Batch 5.1新增的实用类,封装了Job构建的常用逻辑,用法如下:
import org.springframework.batch.core.configuration.annotation.Jobs; import org.springframework.batch.core.repository.JobRepository; import org.springframework.context.annotation.Bean; @Bean public Job myJob(JobRepository jobRepository, Step step1, Step step2) { return Jobs.job("myJob", jobRepository) .start(step1) .next(step2) .build(); }
方式二:使用JobDefinitionBuilder(适合自定义更多细节)
如果需要对Job定义做更精细的配置,可以先通过JobDefinitionBuilder构建Job定义,再结合JobRepository创建Job:
import org.springframework.batch.core.job.builder.JobDefinitionBuilder; import org.springframework.batch.core.job.builder.FlowJobBuilder; import org.springframework.batch.core.repository.JobRepository; import org.springframework.context.annotation.Bean; @Bean public Job myJob(JobRepository jobRepository, Step step1, Step step2) { var jobDefinition = JobDefinitionBuilder.jobDefinition("myJob") .start(step1) .next(step2) .build(); return new FlowJobBuilder(jobDefinition, jobRepository).build(); }
关于STS 3.2.3的注意事项
STS 3.2.3版本较旧,可能不会对Spring Batch 5.1的新API提供完整的代码提示,但只要项目依赖配置正确(确保Spring Batch 5.1.1的依赖已引入),代码可以正常编译运行。如果需要更好的开发体验,建议升级到支持Spring 6.x的STS版本(Spring Batch 5.x依赖Spring 6.x)。
内容的提问来源于stack exchange,提问作者Choonghyun Lee
相关产品推荐
相关产品推荐

