今天在Spring中配置Quartz框架如下,定义上午的11点24分30秒执行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"的属性,这导致了所有的bean在web容器启动的时候都不会自动实例化 因此导致Quartz框架中的实例bean也没有实例化。 解决方法: 去掉该属性,默认default-lazy-init="false"或者在局部的bean中配置加上lazy-init="false" 修改配置后,重启web容器,发现运行正常了!

被折叠的 条评论
为什么被折叠?



