我有一个接口实现,可将我的请求映射到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类中,必须在执行作业之前添加一个不在Request Object中的附加参数:
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);
}
如何添加此新参数?
答案 0 :(得分:1)
没有方法可以直接在JobParameters
中添加参数,您需要使用JobParametersBuilder
。
您需要从现有JobParametersBuilder
构造JobParameters
并将参数添加到builder中,然后再次从builder中获取JobParameters
。
JobParameters parameters = myMapper.map(request);
JobParametersBuilder parametersBuilder = new JobParametersBuilder(parameters);
parametersBuilder.addString("id", id);
JobParameters newParameters = parametersBuilder.toJobParameters();