use*_*434 4 java spring struts2 spring-batch
以下是我的要求。
有一个用户输入文件名并点击提交的屏幕。
单击 submit 时,必须触发 spring 批处理作业。批处理作业读取文件并填充数据库。
我们如何从 java 代码(特别是从 struts 操作类代码)调用 spring 批处理作业?
另外,我需要将文件名(用户在屏幕上输入的)传递给批处理程序。我们如何实现这一目标?
Spring Batch 作业通过JobLauncher启动(例如运行)。启动器的一种实现是由您可以在框外使用的框架提供的:SimpleJobLauncher。查看文档的配置 JobLauncher部分
虽然大多数情况下批处理作业是从命令行启动的(已调度或未调度),但有几种方法可以从 Web 执行此操作。查看Spring Batch 文档的 Web Container部分中的Running Jobs。
这个想法很简单。您只需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());
}
}
Run Code Online (Sandbox Code Playgroud)
这是 Spring MVC(不是 Struts),但您可以看到它非常简单,并且适用于任何控制器/动作类:
jobLauncher并被job注入 => setJobLauncher(...) / setJob(...)jobLauncher从jobLauncher.html页面运行作业(注意:调用run不会阻塞)启动 Spring Batch 作业而完全不担心 Spring MVC 和 Struts 的另一种方法是使用Spring Batch Admin来解决这个确切的问题以及更多(监视/停止/等)
| 归档时间: |
|
| 查看次数: |
6337 次 |
| 最近记录: |