一尘不染

如何使用spring-boot在spring batch中设置JobParameters

spring-boot

我按照http://spring.io/guides/gs/batch-
processing/上的指南进行操作,但是它描述了没有可配置参数的作业。我正在使用Maven构建我的项目。

我正在移植用XML定义的现有作业,并希望通过命令传递jobParameters。

我尝试了以下方法:

@Configuration
@EnableBatchProcessing
public class MyBatchConfiguration {

    // other beans ommited

    @Bean 
    public Resource destFile(@Value("#{jobParameters[dest]}") String dest) {
        return new FileSystemResource(dest);
    }

}

然后,我使用以下命令编译我的项目:

mvn clean package

然后我尝试像这样启动程序:

java my-jarfile.jar dest=/tmp/foo

我得到一个例外的说法:

[...]
Caused by: org.springframework.expression.spel.SpelEvaluationException: 
EL1008E:(pos 0): Field or property 'jobParameters' cannot be found on object of 
type 'org.springframework.beans.factory.config.BeanExpressionContext'

谢谢 !


阅读 1365

收藏
2020-05-30

共1个答案

一尘不染

我设法通过简单地注释我的bean来使它工作,如下所示:

@Bean 
@StepScope
public Resource destFile(@Value("#{jobParameters[dest]}") String dest) {
    return new FileSystemResource(dest);
}
2020-05-30