所有
我的配置类似于以下内容。
@Configuration
@EnableBatchProcessing
public class MyConfiguration {
@Bean
protected Job myJob() { return <the-job>; }
@Bean
protected JobParameters params() { return <parameters>; }
}
我原以为这会使用我指定的JobParameters
bean,但事实并非如此。如何同时使用@EnableBatchProcessing
和JobParameters
?
谢谢!
答案 0 :(得分:2)
@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 中的将禁用此功能。