Spring Batch的JobLocator有什么意义?

时间:2014-08-20 09:08:41

标签: spring spring-batch

我创建了一个Spring Batch应用程序(与Spring Boot一起)。配置作业效果很好,每个作业都在启动时执行。作业配置也按预期显示在数据库中。

要使用参数启动作业,有两个选项:

  • 注入Job,因为它是一个Java Bean - 效果很好
  • 使用JobLocator获取作业的实例 - 在几个教程中看到,但不起作用("没有注册名称为[doSomethingJob]的作业配置")

所以我的问题是:如果一个人可以直接轻松注入工作,那么JobLocator的意义何在?

1 个答案:

答案 0 :(得分:1)

JobLocator不是为了注射工作。它是定位要执行的实例。如果你有动态执行作业的东西(不知道它需要执行什么工作),你会想要使用JobLocator。一个例子是Spring Batch Admin。在JobLocator内使用JobService来启动请求的Job

Job实例连接到您的班级时,如果预定了您将要运行的工作,则可以正常工作。但是,如果不这样做,JobLocator就可以了。