閑著寫瞭一個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