如何在春季4.3.15更新之后注入SchedulerFactoryBean



我从春季4.3.2升级到春季4.3.16:

后会遇到以下错误
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'schedulerFactory': FactoryBean which is currently in creation returned null from getObject

我正在将石英调度程序注入我的豆子之一,如下所示:

//xml config

<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="byName">
    <property name="jobFactory">
        <bean class="org.springframework.scheduling.quartz.SpringBeanJobFactory"/>
    </property>
    <property name="applicationContextSchedulerContextKey" value="applicationContext"/>
    <property name="dataSource" ref="myDS" />
    <property name="triggers">
        <list>
            <ref bean="updateTrigger"/>
            <ref bean="queueUpdateTrigger"/>
        </list>
    </property>
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.scheduler.instanceName">MyQuartzScheduler</prop>
            <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
            <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
            <prop key="org.quartz.jobStore.isClustered">true</prop>
            <prop key="org.quartz.jobStore.clusterCheckinInterval">60000</prop>
            <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</prop>
            <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
            <prop key="org.quartz.threadPool.threadCount">2</prop>
            <prop key="org.quartz.threadPool.threadPriority">5</prop>
            <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
            <prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop>
        </props>
    </property>
</bean>
<bean name="UpdateJobUtils" class="app.job.UpdateJobUtils" autowire="byType">
    <property name="schedulerFactory" ref="schedulerFactory" />
</bean>

//bean

public class UpdateJobUtils {
    private StdScheduler schedulerFactory;
    public void setSchedulerFactory(StdScheduler schedulerFactory) {
        this.schedulerFactory = schedulerFactory;
    }
    ...
}

这在春季4.3.2上工作,直到4.3.14。我看到https://jira.spring.io/browse/spr-16439被返回到4.3.15,所以我想知道它是否会改变我应该使用此类的方式?

SchedulerFactory在其配置上具有autowire =" byname"。

我不确定为什么会在那儿,但是删除它似乎已修复了例外。

相关内容

最新更新