如何解决春季批处理将新参数添加到现有作业参数
我有一个接口实现,可将我的请求映射到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);
}
如何添加此新参数?
解决方法
没有方法可以直接在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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。