准备条件:spring相关jar,commons-collections-3.1.jar(3.x以上), quartz-all-1.6.0.jar。
<bean id="pushService" class="com.demo.service.PushService">
</bean><!--定义定时执行searchEngerneService 这个bean中的timeTask()方法-->
<bean id="pushTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--你要执行的那个方法对应的bean-->
<property name="targetObject">
<ref bean="pushService" />
</property>
<!--你要执行那个方法,注意方法不能有返回值,参数好像也不能有-->
<property name="targetMethod">
<value>timeTask</value>
</property>
</bean>
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是searchEngerneTask,即触发器去触发哪个bean..并且我们还定义了触发的时间-->
<bean id="doTime"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="pushTask" />
</property>
<property name="cronExpression">
<!-- 关键在配置此表达式,在每天上午8点到2:55期间和下午6点到6:55期间的每5分钟触发 -->
<value>0 0/1 9-23 * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers"><list>
<ref bean="doTime"/>
</list>
</property>
</bean>