所有,

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

@Configuration
@EnableBatchProcessing
public class MyConfiguration {

  @Bean
  protected Job myJob() { return <the-job>; }

  @Bean
  protected JobParameters params() { return <parameters>; }

}


我以为这将使用我指定的JobParameters bean,但事实并非如此。如何同时使用@EnableBatchProcessingJobParameters

谢谢!

最佳答案

@EnableBatchProcessing为您提供了一些有用的bean,例如JobLauncher(further info)。要注入指定的作业参数,请将其传递给实际启动作业的方法。

@Autowired
JobLauncher jobLauncher;

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


如果我理解正确,您就会知道如何在这样的步骤配置中访问jobParameters

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


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

spring.batch.job.enabled=false


在application.properties中将禁用此功能。

10-04 10:59