在终端传递jobParameters spring batch

时间:2018-06-17 18:49:21

标签: spring spring-boot command-line spring-batch

我尝试使用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 = ""

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

1 个答案:

答案 0 :(得分:2)

我认为你应该使用spring-boot-maven项目来创建spring executable 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 = ""