首页 > 解决方案 > 在终端中传递jobParameters spring批处理

问题描述

我正在尝试使用 Spring Batch 实现批处理服务。我唯一的问题是动态传递一个jobParameter。

我正在尝试使用 docker 启动此服务,因此在我的 docker-compose.yml 中我正在运行以下命令:

java -Dspring.batch.job.names=uploadToS3Job -jar job-service-1.0-SNAPSHOT.jar date=29-05-2018

但我的字段始终为空:

@Value("#{jobParameters['date'] ?: ''}")
@StepScope
var date: String = ""

我不知道我做错了什么。请帮忙

标签: springspring-bootcommand-linespring-batch

解决方案


我认为你应该使用 spring-boot-maven 项目来创建 spring 可执行 jar,然后你可以通过-Dspring-boot.run.arguments. 你可以像这样运行它:

mvn spring-boot:run -Dspring-boot.run.arguments= --job1parameters.date=29-05-2018

@Value("${job1parameters.date}")
@StepScope
var date: String = ""

推荐阅读