我正在阅读JobLauncherApplicationRunner
的源代码。根据我的理解,当我们使用Spring boot
+Spring batch
时,这个类用于查找应用程序上下文中的所有作业,并使用SimpleJobLauncher
在启动时执行作业。我发现了一些与我以前的知识相矛盾的案例,如果你能帮助我,我将不胜感激。
- 我在
JobLauncherApplicationRunner
中没有发现这个类是spring管理bean的迹象,那么为什么/如何这个类使用@Autowired
? - 这个类实现
ApplicationRunner
接口,同样Spring boot
找到所有bean,在刷新应用程序上下文后,它将为实现该接口的那些bean执行该接口的run
方法。spring如何注册JobLauncherApplicationRunner
?
它是作为Spring Batch自动配置的一部分创建的。这个自动配置可以在BatchAutoConfiguration
类中找到。
这里,它将有条件地创建JobLauncherApplicationRunner
的实例。