鍵的作用,它允許你通過配置來指定特定時(shí)間去調(diào)用特定類的特定方法。
一. 分類
1.作業(yè)類需要繼承特定的類。特定的類有:
org.springframework.scheduling.quartz.QuartzJobBean;
java.util.TimerTask.
2.作業(yè)類就是自己定義的普通類。
作業(yè)類使用的觸發(fā)時(shí)間的方式主要有兩種。
1.在指定的時(shí)間調(diào)用。例如每天的每小時(shí)的15分,30分,45分,00分執(zhí)行任務(wù)。
org.springframework.scheduling.quartz.CronTriggerBean
2.每隔一段時(shí)間就調(diào)用。比如每過10分鐘就執(zhí)行一次特定的任務(wù)。
org.springframework.scheduling.quartz.SimpleTriggerBean
二. 定時(shí)任務(wù)的主要步驟:
1.導(dǎo)包
2.編寫任務(wù)類
3.配置文件中配置
解釋:a: 當(dāng)容器加在該配置文件的時(shí)候,首先實(shí)例化任務(wù)調(diào)度工廠,調(diào)度工廠的triggers屬性是一個(gè)list,里面存放
所有用戶定義的任務(wù)。
b: 找到這個(gè)任務(wù)后,會(huì)繼續(xù)找到這個(gè)任務(wù)的配置,這里是延遲0秒執(zhí)行調(diào)度,每隔1秒執(zhí)行該任務(wù),該任
務(wù)的名字是task1。
c: 繼而找到task1代表的真正的定義類,也就是圖中配置文件中的第一個(gè)bean,其中的jobClass屬性要寫
執(zhí)行任務(wù)類的完整路徑,找到這個(gè)類之后會(huì)自動(dòng)調(diào)用類中重寫的那個(gè)方法,并且執(zhí)行。
這種任務(wù)的觸發(fā)方式是每隔一段時(shí)間觸發(fā),假如你想要在指定的特定時(shí)間觸發(fā),則需要這樣配置:
僅僅是把上圖中的第二個(gè)bean換成這種方式,另外需要注意的是,任務(wù)調(diào)度工廠中的任務(wù)列表
List中要加入該任務(wù)<ref bean= "cronTrigger" />。而原來被替換的simpleTrigger要注釋掉。
但博文開始就說了任務(wù)分類有兩種,這里只是繼承特定的類這一種,還有一種就是作業(yè)類就是自己而不需要繼承任何類。
這里需要解釋的是,如果每次寫作業(yè)類都需要硬性繼承某個(gè)特定的類,就好像給代碼“綁架”了一樣,還要硬性去重寫某個(gè)方法,
這個(gè)擴(kuò)展性就太差了。所以就有了第二種,不需要你繼承特定的類重寫特定的方法,而是由你自由定義,之所以做到了這一點(diǎn)是因?yàn)檫@部分邏輯被抽離了出來,
寫在了配置文件中。接下來就介紹這一種。