解释 JobLauncherApplicationRunner class 是如何工作的?

explain how JobLauncherApplicationRunner class works?

我正在阅读 JobLauncherApplicationRunner 的源代码。根据我的理解,当我们使用Spring boot + Spring batch时,这个class用于查找应用程序上下文中的所有作业并使用SimpleJobLauncher在启动时执行作业。我发现了一些与我以前的知识相矛盾的案例,如果你能帮助我,我将不胜感激

  1. 我在 JobLauncherApplicationRunner 中没有发现这个 class 是一个 spring 托管 bean,然后 why/how 这个 class 使用 @Autowired
  2. 这个class实现了ApplicationRunner接口,再次Spring boot找到所有bean,应用上下文刷新后,会为那些执行这个接口的run方法实现了这个接口的bean。 spring 如何注册 JobLauncherApplicationRunner?

它是作为 Spring 批处理自动配置的一部分创建的。此自动配置可以在 BatchAutoConfiguration class.

中找到

在这里,它将有条件地创建 JobLauncherApplicationRunner.

的实例