1 概念
SpringTask是spring3.0後自主提供的定時任務的工具, spring-task,可以将它比作一個輕量級的Quartz,而且使用起來很簡單,除spring相關的包外不需要額外的包,而且支援注解和配置檔案兩種形式。這裡主要介紹SpringTask的使用方式
2 xml配置方式
1.添加task命名空間
2.Spring建立任務所在的類型的對象,配置定時任務(在spring主配置檔案中)
<!--Spring 定時任務 xml寫法-->
<bean id="writeIndex" class="com.project.writerindex.WriteIndex"></bean>
<!--配置定時任務-->
<task:scheduled-tasks>
<!--
ref:執行的類
method:執行的方法
cron:
-->
<task:scheduled ref="writeIndex" method="writeRun" cron=" */3 * * * * ? "/>
</task:scheduled-tasks>
3.在測試方式中擷取容器,啟動容器
3 注解方式
1.添加task的注解驅動(在spring主配置檔案中)
<!--task的注解驅動-->
<task:annotation-driven/>
2.添加IoC注解,并且在任務類上标注@Component注解
<!--IoC注解-->
<context:component-scan base-package="com.project.writerindex"/>
3.執行的方法上标注@scheduled注解
•任務類必須在spring的容器中, 否則@Scheduled不起效
4 cron表達式
一個cron表達式有至少6個用空格分隔的時間元素。
1. 按順序依次為
1. 秒(0~59)
2. 分鐘(0~59)
3. 小時(0~23)
4. 天(0~31)
5. 月(0~11)
6. 星期(1~7 1為SUN-依次為SUN,MON,TUE,WED,THU,FRI,SAT)
7. 年份(1970-2099)
2. 舉例說明:
0 0 10,14,16 * * ? 每天上午10點,下午2點,4點
0 0/30 9-17 * * ? 朝九晚五工作時間内每半小時
0 0 12 ? * WED 表示每個星期三中午12點
*/1 * * * * ? 每隔一秒執行一次