spring 向现有作业参数批量添加新参数
spring batch add new parameter to existing job parameters
我有一个将我的请求映射到 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 class 中,我必须在执行作业之前添加一个不在请求对象中的附加参数:
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();
我有一个将我的请求映射到 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 class 中,我必须在执行作业之前添加一个不在请求对象中的附加参数:
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();