關於spring定時器的搭建

項目需要用到定時器,雖然原來也使用過,但今天我重新搭建了一遍,順便複習一下

第一步:

應爲考慮到是spring 加載,首先想到的是對web.xml的修改,因爲想將定時器的配置作爲一個獨立的模塊,bean-quartz.xml

故修改配置如下:

<!-- 配置Spring -->
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:bean*.xml</param-value>
 </context-param>

換成bean*.xml即可支持.

 

第二部:構建

bean-quartz.xml 內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 
 <!-- 註冊定時執行實體 -->

<!--定義自己的任務類--!> 

<bean id="doTask" class="com.joker.synz.quartz.SynzCert"></bean>
 <!-- ============================= 執行任務 ========================== -->
 <!-- 註冊定時任務 -->
 <bean id="doTaskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <!-- 定時任務類 -->
  <property name="targetObject" ref="doTask" />
  <!-- 定時任務執行方法 -->
  <property name="targetMethod">

<!--指定自己的任務類需要執行的方法--!>

 <value>execute</value>
  </property>
  <!-- 同一任務在前一次執行未完成而Trigger時間又到時是否併發開始新的執行, 默認爲true. -->
  <property name="concurrent" value="false" />
 </bean>
 
 <!-- 定義定時器 -->
 <bean id="mainTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="doTaskJob" />

<!--cron表達式,指定任務執行的時間--!>
  <property name="cronExpression"
   value="${schedule.dotask.cronExpression}" />
 </bean>
  <!-- 註冊定時器 -->

<!--註冊,使它能夠被加載並且運行起來--!>
 <bean id="schedulerFactoryBean" lazy-init="true" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref local="mainTrigger" />
   </list>
  </property>
 </bean>
</beans> 

其實很簡單,定義,註冊之後就可以使用了。

對於自己定義的類,無需實現任何接口或者繼承任何類,自己寫個類就可以。

package com.joker.synz.quartz;

import org.ezca.synz.quartz.thread.CertSYNZThtread;
/**
 *
 *
 * @author GQ
 *
 *
 */
public class SynzCert {
 public void execute(){
  new Thread(new CertSYNZThtread()).start();
 }
}

 

同時,需要jar包:

spring-context-support-3.0.5.RELEASE.jar
slf4j-api.jar和slf4j-log4j12.jar
log4j-1.2.14.jar。

關於cron表達式,請參考我轉載的一篇文章。

 http://blog.csdn.net/joker_apple/article/details/20136193

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章