+-

以下是我的要求.
>有一个屏幕,用户输入文件名并点击提交.
>单击提交时,必须触发弹出批处理作业.批处理作业读取文件并填充数据库.
我们如何从java代码(特别是struts动作类代码)调用spring批处理作业?
此外,我需要将文件名(用户在屏幕上输入)传递给批处理程序.我们如何实现这一目标?
最佳答案
JobLauncher
Spring批处理作业通过JobLauncher启动(例如运行).启动程序的一个实现由框架提供,您可以在框外使用:SimpleJobLauncher.查看文档的Configuring a JobLauncher部分
从Web容器中运行作业
虽然大多数时间批处理作业是从命令行启动的(计划与否),但有几种方法可以从Web上执行.请查看Spring Batch文档的Running Jobs from within a Web Container部分.
这个想法很简单.您只需从控制器中调用jobLauncher.run:
@Controller
public class JobLauncherController {
@Autowired
JobLauncher jobLauncher;
@Autowired
Job job;
@RequestMapping("/jobLauncher.html")
public void handle() throws Exception{
jobLauncher.run(job, new JobParameters());
}
}
这是Spring MVC(不是Struts),但你可以看到它非常简单,适用于任何控制器/动作类:
> jobLauncher和job被注入=> setJobLauncher(…)/ setJob(…)
> jobLauncher从jobLauncher.html页面运行作业(注意:运行调用不会阻止)
Spring Batch Admin
启动Spring Batch作业而不用担心Spring MVC和Struts的另一种方法是使用Spring Batch Admin来解决这个问题以及更多(监视/停止等等)
点击查看更多相关文章
转载注明原文:从java代码调用Spring Batch - 乐贴网