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();