Spring中如何使用Quartz

2021-08-21 14:42:23 字數 1465 閱讀 5856

首先第一步肯定是在pom檔案中匯入相關的包。pom.xml:

org.apache.logging.log4j

log4j-core

2.2 org.quartz-scheduler

quartz

2.2.1

在spring中使用quartz有兩種方式實現:第一種是任務類繼承quartzjobbean,第二種則是在配置檔案裡定義任務類和要執行的方法,類和方法可以是普通類。很顯然,第二種方式遠比第一種方式來的靈活,我這裡使用的是第二種配置方式,大家有興趣可以自己試一下第一中配置方式。

先來 spring配置檔案:

對應的 oceanstatusjob實體類:

public class oceanstatusjob 

}

ok,這裡給大家解釋下xml檔案的內容。

回想一下之前說過的quartz三個要素:scheduler、trigger、jobdetai&job。對應到xml檔案,也就是上面的中的幾個bean物件。幾個點注意下: 附:

欄位名允許的值

允許的特殊字元

秒0-59

, - * /

分0-59

, - * /

小時0-23

, - * /

日1-31

, - * ? / l w c

月1-12 or jan-dec

, - * /

週幾1-7 or sun-sat

, - * ? / l c #

年 (可選字段)

empty, 1970-2099

, - * /

「?」字元:表示不確定的值

「,」字元:指定數個值

「-」字元:指定乙個值的範圍

「/」字元:指定乙個值的增加幅度。n/m表示從n開始,每次增加m

「l」字元:用在日表示乙個月中的最後一天,用在周表示該月最後乙個星期x

「w」字元:指定離給定日期最近的工作日(周一到周五)

「#」字元:表示該月第幾個周x。6#3表示該月第3個周五

2)cron表示式範例:

每隔5秒執行一次:*/5 * * * * ?

每隔1分鐘執行一次:0 */1 * * * ?

每天23點執行一次:0 0 23 * * ?

每天凌晨1點執行一次:0 0 1 * * ?

每月1號凌晨1點執行一次:0 0 1 1 * ?

每月最後一天23點執行一次:0 0 23 l * ?

每週星期天凌晨1點實行一次:0 0 1 ? * l

在26分、29分、33分執行一次:0 26,29,33 * * * ?

每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

Spring中如何使用設計模式

關於設計模式,如果使用得當,將會使我們的 更加簡潔,並且更具擴充套件性。本文主要講解spring中如何使用策略模式,工廠方法模式以及builder模式。關於策略模式的使用方式,在spring中其實比較簡單,從本質上講,策略模式就是乙個介面下有多個實現類,而每種實現類會處理某一種情況。我們以發獎勵為例...

Spring中如何使用設計模式

關於設計模式,如果使用得當,將會使我們的 更加簡潔,並且更具擴充套件性。本文主要講解spring中如何使用策略模式,工廠方法模式以及builder模式。關於策略模式的使用方式,在spring中其實比較簡單,從本質上講,策略模式就是乙個介面下有多個實現類,而每種實現類會處理某一種情況。我們以發獎勵為例...

如何使用Spring的FactoryBean介面

在spring容器中有兩類的bean,一類是普通的bean,一類是工廠bean。這兩種bean都是被spring的容器進行管理的。而spring也提供了乙個介面用於擴充套件工廠bean,我們只要實現org.springframework.beans.factory.factorybean即可。首先我...