将 Quartz Job 声明为 spring bean 是否有正当理由?

问题描述 投票:0回答:1

通过查看在 spring boot 应用程序中运行 quartz 作业的一些示例,我发现其中许多实际上是使用

Job
注释声明
@Component
:

这似乎完全没用,因为每次触发作业时作业工厂都会创建一个新实例。

我可以在我的应用程序中看到,每次执行作业时都会调用方法 SpringBeanJobFactory.createJobInstance。我删除了

@Component
注释并且它工作得很好,那么将 Job 声明为 spring bean 有什么好处吗?

spring spring-boot quartz-scheduler
1个回答
0
投票

在某些情况下,您需要将 spring 管理的组件注入到您的作业中,例如一些服务或存储库(以获取一些数据以按作业处理)。在这种情况下,您想创建一个作业作为组件并允许 spring 将所需的 bean 注入其中。在这种情况下,您的作业的超类可以扩展 QuartzJobBean。

© www.soinside.com 2019 - 2024. All rights reserved.