Spring中的Quartz配置

    今天在Spring中配置Quartz框架如下,定義上午的112430秒執行userSerivce中的doJob方法,然而時間到了卻沒有執行

 

    <!--schedule-->

    <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

       <property name="triggers">

           <list>

              <ref local="cronTrigger" />

           </list>

       </property>

    </bean>

    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

       <property name="jobDetail" ref="methodInvokingJobDetail"/>

       <property name="cronExpression" value="30 24 11 * * ?"/>

    </bean>

    <bean id="methodInvokingJobDetail"

       class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

       <property name="targetObject" ref="userService"/>

       <property name="targetMethod" value="doJob"/>

    </bean>

 

 

結果發現在xml配置頭曾經配置了一個default-lazy-init="true"的屬性,這導致了所有的beanweb容器啓動的時候都不會自動實例化

因此導致Quartz框架中的實例bean也沒有實例化。

解決方法:

去掉該屬性,默認default-lazy-init="false"或者在局部的bean中配置加上lazy-init="false"

修改配置後,重啓web容器,發現運行正常了!

發佈了43 篇原創文章 · 獲贊 4 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章