我有一个接口实现,它将我的请求映射到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();