+-
从java代码调用Spring Batch
以下是我的要求.

>有一个屏幕,用户输入文件名并点击提交.
>单击提交时,必须触发弹出批处理作业.批处理作业读取文件并填充数据库.

我们如何从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 - 乐贴网