我在我的项目中使用Quartz调度程序进行调度。我需要收集统计数据,例如工作的时间,持续时间和工作次数。我想使用Spring AOP。为此,我正在制作Job类Spring管理的bean。 Spring为每个Job类创建一个Proxy类。但是现在当Quartz尝试执行这个Spring管理的Job时,我得到了为Spring为Job创建的Proxy类的InstantiationException。
org.quartz.SchedulerException:实例化类'$ Proxy6'的问题[参见嵌套异常:java.lang.InstantiationException:$ Proxy6]
有人可以为这个问题建议一个解决方案吗?
如果您直接使用quarz(而不是通过Spring Schedule注释),您可以直接向quarz询问统计信息。 - 其中许多已经在quarz中实现。
因为Quartz Job类是由Quartz容器管理而不是Spring容器,所以Spring AOP无法达到你的目标。为了您的目的,有两种方法可以解决这个问题:
SpringBeanJobFactory
然后覆盖createJobInstance()
方法。如果您想了解更多相关信息,请对此发表评论,我会在此详细介绍。