我会尝试给你一些不同点的想法 .
1 - Read table values and pass them as Job Parameters
我在这看到2个解决方案:
您可以执行"manual"查询(即没有springbatch),然后执行业务逻辑以将结果作为JobParameters传递(您只需要 JobLauncher 或 CommandLineJobRunner ,请参阅Springbatch Documentation §4.4):
JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
Job job = (Job) context.getBean(jobName);
// Do your business logic and your database query here.
// Create your parameters
JobParameter parameter = new JobParameter(resultOfQuery);
// Add them to a map
Map parameters = new HashMap();
parameters.add("yourParameter", parameter);
// Pass them to the job
JobParameters jobParameters = new JobParameters(parameters);
JobExecution execution = jobLauncher.run(job, parameters);
另一种解决方案是添加 JobExecutionListener 并覆盖方