Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring批处理将新参数添加到现有作业参数_Java_Spring_Spring Boot_Spring Batch - Fatal编程技术网

Java spring批处理将新参数添加到现有作业参数

Java spring批处理将新参数添加到现有作业参数,java,spring,spring-boot,spring-batch,Java,Spring,Spring Boot,Spring Batch,我有一个接口实现,它将我的请求映射到JobParameters @Component("myMapper") public class MyMapper implements RequestMapper { @Override public JobParameters map(Request request) { JobParametersBuilder parameters = new JobParametersBuilder();

我有一个接口实现,它将我的请求映射到
JobParameters

@Component("myMapper")
public class MyMapper implements RequestMapper {

    @Override
    public JobParameters map(Request request) {
        JobParametersBuilder parameters = new JobParametersBuilder();
        parameters.addString("name", request.getValue(NAME));
        parameters.addString("test", request.getValue(TEST));
        return parameters.toJobParameters();
    }
}
在我的JobRunner类中,我必须在执行作业之前添加一个不在请求对象中的附加参数:

public Response runJob(final Request request, final String id) {
    Job job = getJob(request);
    JobParameters parameters = myMapper.map(request);

    //i want to add id to parameters
    JobExecution execution;

        execution = jobLauncher.run(job, parameters);

}

如何添加此新参数?

JobParameters
中没有直接添加参数的方法,您需要使用
JobParametersBuilder

您需要从现有的
JobParameters
构建
JobParametersBuilder
,并在生成器中添加参数,然后再次从生成器中获取
JobParameters

JobParameters parameters = myMapper.map(request);
JobParametersBuilder parametersBuilder = new JobParametersBuilder(parameters);
parametersBuilder.addString("id", id);
JobParameters newParameters = parametersBuilder.toJobParameters();