Java Spring批处理启用批处理作业参数

Java Spring批处理启用批处理作业参数,java,spring,spring-batch,Java,Spring,Spring Batch,全部, 我有一个类似于下面的配置 @Configuration @EnableBatchProcessing public class MyConfiguration { @Bean protected Job myJob() { return <the-job>; } @Bean protected JobParameters params() { return <parameters>; } } @配置 @启用批处理 公共类MyConfigur

全部,

我有一个类似于下面的配置

@Configuration
@EnableBatchProcessing
public class MyConfiguration {

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

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

}
@配置
@启用批处理
公共类MyConfiguration{
@豆子
受保护的作业myJob(){return;}
@豆子
受保护的作业参数params(){return;}
}
我假设这将使用我指定的
JobParameters
bean,但它没有。如何使用
@EnableBatchProcessing
作业参数


谢谢

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

@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中将禁用此功能。

因此我可以获得
JobLauncher
,但它不能正常工作。以前,我没有任何方法来启动这项工作。它只是自己做的。运行作业后,
@EnableBatchProcessing
尝试再次运行作业,这次没有参数。您可以通过在application.properties文件中设置spring.batch.job.enabled=false来禁用作业的自动启动。