我按照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'
谢谢 !
我设法通过简单地注释我的bean来使它工作,如下所示:
@Bean @StepScope public Resource destFile(@Value("#{jobParameters[dest]}") String dest) { return new FileSystemResource(dest); }