<!-- 定义调用对象和调用对象的方法 --> <!-- 定时任务 A start --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject"><ref bean="quartzJobAction" /></property> <!-- 调用类中的方法 --> <property name="targetMethod"><value>updateData</value></property> </bean> <!-- 定义触发时间 --> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask" /> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>0 0 2 * * ?</value> </property> </bean> <!-- 定时任务 A end --> <!-- 定时任务 B start 未支付的订单三天状态自动关闭 --> <bean id="orderJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"><ref bean="payService" /></property> <property name="targetMethod"><value>updateOrderStatus</value></property> </bean> <bean id="triggerTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"><ref bean="orderJob" /></property> <property name="cronExpression"> <!-- 每天凌晨1点执行一次 (测试每分钟执行一次 0 */1 * * * ?) --> <value>0 0 1 * * ?</value> </property> </bean> <!-- 定时任务 B end --> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="doTime" /> <ref bean="triggerTime" /> </list> </property> </bean>