Spring批处理+ Spring API REST
问题描述:
我已经用spring批处理建立了一个java批处理项目,该批处理项目允许将CSV的行保存在数据库的表中。 我想知道是否有可能用Spring API REST通过POST方法触发批处理,这会加入必要的CSV。Spring批处理+ Spring API REST
预先感谢您
答
你可以做到这一点使用Controller
用JobLauncher
和Job
。控制器的准系统会是这样
@RestController
public class MyController{
// Usually given by Spring Batch
private JobLauncher jobLauncher;
// Your Job
private Job job;
// Ctor
public MyController(JobLauncher jobLauncher, Job job, ...){}
@PostMapping("/")
public String launchJob(...){
...
// Create JobParameters and launch
JobParameters jobparameters = new Job Parameters();
jobLauncher.run(job, jobParameters);
...
}
}
SimpleJobLauncher,JobLauncher的实施,在默认情况下使用了同步执行,你可能会想这取决于你的要求它改变到一个异步一个
所以我设法从POST启动作业,但如何检索通过该方法发送的CSV? – Fosfor
@Fosfor你可以按照这个[入门指南](https://spring.io/guides/gs/uploading-files/)创建一个上传文件的方法(MultipartFile有'transferTo'和'getBytes',它们允许你保存文件)。之后,您可以将文件的路径作为字符串放入作业参数中 –