spring定時任務小例子 – JAVA編程語言程序開發技術文章

閑著寫瞭一個spring定時任務的小例子,也積累一下,免得做android開發把javaEE的都忘記瞭!下面是spring定時任務的代碼:
這個是一個很簡單的MyTime類,裡面有一個方法就是得到當前時間並且打印出來

package com.zhangkeinfo.spring.time; 
 
import java.sql.Timestamp; 
 
/**
 * spring 定時任務
 * @author spring sky
 * Email:vipa1888@163.com
 * QQ:840950105
 *
 */ 
public class MyTime { 
    public void getTime() 
    { 
        Timestamp tt = new Timestamp(System.currentTimeMillis()); 
        System.out.println(tt.toString()); 
    } 

核心的代碼:

package com.zhangkeinfo.spring.time; 
 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 
import org.springframework.scheduling.quartz.QuartzJobBean; 
/**
 * spring 定時任務
 * @author spring sky
 * Email:vipa1888@163.com
 * QQ:840950105
 * #####spring 定時任務需要繼承QuartzJobBean 這種方式是最常用的!
 * #####同時就實現瞭抽象方法executeInternal
 * 
 */ 
public class UpdateTime extends QuartzJobBean{ 
     
    private MyTime myTime; 
    /**
     * 依賴註入myTime
     * @param myTime
     */ 
    public void setMyTime(MyTime myTime) { 
        this.myTime = myTime; 
    } 
 
    /**
     * 我在這個定時任務裡面隻做瞭一個很簡單的事情,就是打印出當前的時間!
     */ 
    @Override 
    protected void executeInternal(JobExecutionContext context) 
            throws JobExecutionException { 
        myTime.getTime(); 
    } 
 

上面需要註意的是參數:context,這個參數有很大的作用,就是可以得到一些重要的值,context有一個get(key)方法,這個就是可以得到一個需要的數據!
 
applicationContext.xml中的配置:

<!– spring定時任務的配置 –> 
<bean class="com.zhangkeinfo.spring.time.MyTime" id="myTime"/> 
 
<!– 基礎的配置   相關類的註入 –> 
<bean class="org.springframework.scheduling.quartz.JobDetailBean" id="MyTimeSpringJob"> 
    <property name="jobClass" value="com.zhangkeinfo.spring.time.UpdateTime"/>  <!– value中配置的是我自己寫的UpdateTime類  name就是spring的jobClass –> 
    <property name="jobDataAsMap">            <!– 當定時任務中需要註入別的bean的時候,就可以在這裡註入,我裡面輸入瞭一個MyTime類 –> 
        <map> 
            <entry key="myTime" value-ref="myTime"/> 
        </map> 
    </property> 
</bean> 
<!– 相關的時間配置 –> 
<bean class="org.springframework.scheduling.quartz.SimpleTriggerBean" id="MyTimesimpleTriggerBean"> 
    <property name="jobDetail" ref="MyTimeSpringJob"/>   <!– 給MyTimeSpringJob配置時間信息,name的jobDetail是spring內部需要註入的名字 –> 
     <property name="repeatInterval" value="1000"/>       <!–相隔1000毫秒執行一次 –> 
      <property name="startDelay" value="5000"/>          <!–tomcat或者jboss啟動5000毫秒後開始執行任務 –> 
</bean> 
 <!–  
     當前註釋的內容配置的功能很強大,還可以配置星期幾,哪一天,那一年,或者那一日的那一秒都是可以配置的 
     當前配置的是:每個周的星期天23:59:50     這個順序是倒序配置的 
     value中的內容: 
     第6位:的1代表星期天,在國外星期天才是每個周的開始! 
    第5位: *代表所有月的星期天 
    第4位:?代表也沒有具體到某日的星期天 
    第3位:23代表23點,註意:采用24小時 
    第2位:59代表分鐘 
    第1位:50代表秒 
<bean class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="MyTimeSpringJob"/> 
     <property name="cronExpression" value="50 59 23 ? * 1"/>  
      
</bean> 
      –> 
<!– ****************啟動定時任務***************** –> 
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="triggers"> 
        <list> 
        <ref bean="MyTimesimpleTriggerBean"/> 
        </list> 
    </property> 
</bean> 

上面的spring xml文件中的基本配置,我已經詳細說明瞭裡面的參數,學習也在於積累,隻有積累瞭,才會不斷的成長!
 
摘自 spring sky

發佈留言