首页 > 解决方案 > java - 如何在java spring boot中使用可选作业参数运行作业

问题描述

我正在从我的工作的 curl 命令传递一个工作参数,我能够得到job parameter传递,但是当我没有传递任何job parameter.

我正在访问这样的作业参数

@Bean
@StepScope
public PaymentEntriesVerificationJob paymentEntriesVerificationJob(@Value("#{jobParameters[params] ?: 1}") String params){
    PaymentEntriesVerificationJob paymentEntriesVerificationJob = new PaymentEntriesVerificationJob();
    paymentEntriesVerificationJob.setParams(params);
    return paymentEntriesVerificationJob;
}

因此,根据代码,如果没有发送 jobParameters 参数 String params将设置为 1。但每当我不发送任何参数时jobParameters,params 都会设置为之前的作业参数值。IE,

case 1) jobcall -d 'jobParameters=bufferTime=4'
    params = 4

case 2) jobcall  (without any jobParameters)
   params = 4

case 3) jobcall -d 'jobParameters=bufferTime=5'
  params = 5

为什么当我不传递任何作业参数时我无法将 1 作为默认值

标签: javaspringspring-bootjava-8spring-batch

解决方案


推荐阅读