準備條件: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>