spring整合quartz框架

前言:

在一些項(xiàng)目中,往往需要定時(shí)的去執(zhí)行一些任務(wù),比如商城項(xiàng)目,每天0點(diǎn)去統(tǒng)計(jì)前一天的銷量。那么如何實(shí)現(xiàn)呢,總不可能我們每天0點(diǎn)手動的去執(zhí)行統(tǒng)計(jì)銷量的方法吧,這時(shí)就quartz就起作用了。


歡迎大家關(guān)注我的公眾號 javawebkf,目前正在慢慢地將簡書文章搬到公眾號,以后簡書和公眾號文章將同步更新,且簡書上的付費(fèi)文章在公眾號上將免費(fèi)。


quartz簡介:

Quartz是OpenSymphony開源組織在Job scheduling領(lǐng)域又一個(gè)開源項(xiàng)目,它可以與J2EE與J2SE應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz可以用來創(chuàng)建簡單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬個(gè)Jobs這樣復(fù)雜的程序。Jobs可以做成標(biāo)準(zhǔn)的Java組件或 EJBs。Quartz的最新版本為Quartz 2.3.0。
以上是百度百科介紹,我們可以簡單的理解其為一個(gè)定時(shí)調(diào)度工具(定時(shí)器)。

spring整合quartz:

網(wǎng)上也有很多教程,好多都是基于配置方式,我們使用當(dāng)然怎么簡單就怎么用,所以這里介紹基于注解方式整合quartz。前提:你需要有一個(gè)能運(yùn)行的web項(xiàng)目。
1、引依賴:

       <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.0</version>
        </dependency>

注意:網(wǎng)上有的教程說還必須引入spring-context-support依賴,但是本項(xiàng)目沒有引入這個(gè)也可以正常使用quartz,可能是最新版不需要這個(gè)依賴了。

2、開啟quartz的注解:
一般我們都在service層使用quartz,所以在spring-service.xml中進(jìn)行如下配置:

 <context:component-scan base-package="com.zhu.meilianMall.service" />
 <task:annotation-driven/>

注意:第一行掃描包的配置是ssm整合本來就需要的,等下quartz的注解也只能在這個(gè)包下使用。

3、使用quartz的注解:
com.zhu.meilianMall.service包下創(chuàng)建測試類,在需要定時(shí)執(zhí)行的方法上加上@Scheduled(cron = "cron表達(dá)式"),如下:

package com.zhu.meilianMall.service;

import java.util.Date;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * 測試quartz
 * @author zhu
 *
 */
@Service
public class QuartzTest {
    @Scheduled(cron = "0/2 * * * * ?")
    public void run() {
        System.out.println("############### quartz整合成功! "+new Date()+"#####################");
    }

}

注意:既然是在service層測試,測試類不要忘了加@Service注解;cron表達(dá)式不會寫沒關(guān)系,百度一下“cron表達(dá)式在線生成器”,就會有很多,這里也給出一個(gè):在線cron表達(dá)式生成器。本案例中是每隔2秒執(zhí)行一次run方法。

4、測試:
啟動tomcat訪問項(xiàng)目,然后控制臺就打印出run方法的執(zhí)行結(jié)果了。

image.png

run方法每隔兩秒打印一次,整合成功!

總結(jié):

本人對于quartz并不了解,其功能也不止本案例中提及的。不過與spring整合確實(shí)夠簡單,只需要引依賴、開啟注解、使用注解3步即搞定。

以上內(nèi)容屬于個(gè)人筆記整理,如有錯(cuò)誤,歡迎批評指正!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇學(xué)完了Sass基礎(chǔ)部分,這次要學(xué)習(xí)的是Sass的高級部分。 條件語句 在Sass中也有條件判斷的語句,用法為...
    Rin陽閱讀 1,001評論 0 0
  • 我發(fā)現(xiàn)了一個(gè)悲哀的現(xiàn)象。 我們在選擇做事之前,往往不先考慮它的意義,而是迫不及待地開始,全...
    蝸牛角上的王國閱讀 482評論 0 2

友情鏈接更多精彩內(nèi)容