Spring是一個開放源代碼的設計層面框架,他解決的是業務邏輯層和其他各層的松耦合問題,因此它將面向接口的編程思想貫穿整個系統應用。Spring是于2003年興起的一個輕量級的Java開發框架,由RodJohnson創建。簡單來說,Spring是一個分層的JavaSE/EEfull-stack(一站式)輕量級開源框架。下文為大家介紹spring定時器用法。
一、分類
1.作業類需要繼承特定的類。特定的類有:
org.springframework.scheduling.quartz.QuartzJobBean;
java.util.TimerTask.
2.作業類就是自己定義的普通類。
作業類使用的觸發時間的方式主要有兩種。
1.在指定的時間調用。例如每天的每小時的15分,30分,45分,00分執行任務。
org.springframework.scheduling.quartz.CronTriggerBean
2.每隔一段時間就調用。比如每過10分鐘就執行一次特定的任務。
org.springframework.scheduling.quartz.SimpleTriggerBean
二、定時任務的主要步驟
1.導包
2.編寫任務類
3.配置文件中配置
解釋:a:當容器加在該配置文件的時候,首先實例化任務調度工廠,調度工廠的triggers屬性是一個list,里面存放
所有用戶定義的任務。
b:找到這個任務后,會繼續找到這個任務的配置,這里是延遲0秒執行調度,每隔1秒執行該任務,該任
務的名字是task1。
c:繼而找到task1代表的真正的定義類,也就是圖中配置文件中的第一個bean,其中的jobClass屬性要寫
執行任務類的完整路徑,找到這個類之后會自動調用類中重寫的那個方法,并且執行。
這種任務的觸發方式是每隔一段時間觸發,假如你想要在指定的特定時間觸發,則需要這樣配置:
僅僅是把上圖中的第二個bean換成這種方式,另外需要注意的是,任務調度工廠中的任務列表
List中要加入該任務《refbean=“cronTrigger”/》。而原來被替換的simpleTrigger要注釋掉。
但博文開始就說了任務分類有兩種,這里只是繼承特定的類這一種,還有一種就是作業類就是自己而不需要繼承任何類。
這里需要解釋的是,如果每次寫作業類都需要硬性繼承某個特定的類,就好像給代碼“綁架”了一樣,還要硬性去重寫某個方法,
這個擴展性就太差了。所以就有了第二種,不需要你繼承特定的類重寫特定的方法,而是由你自由定義,之所以做到了這一點是因為這部分邏輯被抽離了出來,
寫在了配置文件中。接下來就介紹這一種。
1.編寫一個非常普通的類,沒有任何繼承,方法也是自己隨便定義的。
2.配置文件
首先我把這個類當作普通bean對象寫在配置文件中。之后非常重要的一個配置是MethodInvokingJobDetailFactoryBean,它有兩個屬性,一個是目標任務類對象,一個
是目標任務方法。注意這個方法value寫的是方法名。不要有參數。
當任務調度工廠執行任務時,根據這個配置找到要執行的對象和方法。
最后把task加入到調度工廠的list中《refbean=“task”/》即可,除此之外還有一個更加簡單的配置方法:
1.任務類
2.配置
這種方式非常的簡潔,只需要配置task標簽即可。但特別注意的前提是spring配置文件表頭一定要加上:
xmlns:task=“http://www.springframework.org/schema/task”
xsi:schemaLocation=“
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-4.0.xsd”
這種方式不需要你把它配置到任務調度工廠中就可以執行。其實正如你看到的,scheduled-tasks標簽
就相當于一個任務集合工廠,里面的《task:scheduled》才是一個個任務。
以上是我介紹的全部使用方式了。
任務類兩種,一種是要繼承和重寫,一種自己定義普通類普通方法。
觸發時間方式兩種,一種間隔時間,一種指定特定時間。
當配置task標簽來指定的時候,要注意配置文件頭需添加一些關于task的聲明標簽。
評論
查看更多