弹簧批处理启用批处理作业参数



All,

我有一个类似于以下内容的配置。

@Configuration
@EnableBatchProcessing
public class MyConfiguration {
  @Bean
  protected Job myJob() { return <the-job>; }
  @Bean
  protected JobParameters params() { return <parameters>; }
}

原以为这会使用我指定的JobParameters bean,但它没有。如何使用@EnableBatchProcessingJobParameters

谢谢!

@EnableBatchProcessing为您提供了一些有用的bean,如JobLauncher(更多信息(。若要注入指定的作业参数,请将它们传递给实际启动作业的方法。

@Autowired
JobLauncher jobLauncher;
public void startExecution() {
    jobLauncher.run(job, jobParemeters);
}

如果我理解正确,您知道如何在步骤配置中访问您的作业参数,如下所示

@Bean
@StepScope
public SomeProcessor processor(@Value("#{jobParameters['someParameter']}") String param) {
    ...
}

默认情况下,@EnableBatchProcessing将在启动时运行可用的作业。设置

spring.batch.job.enabled=false

属性将禁用此功能。

最新更新