今天就跟大家聊聊有關(guān)如何配置Spring定時(shí)任務(wù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
在寬城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),寬城網(wǎng)站建設(shè)費(fèi)用合理。
第一步,要知道Spring這個(gè)架構(gòu),很有趣很有意思??梢宰龅阶杂刹灏喂δ苣K的效果。工程項(xiàng)目是基于MAVEN包依賴管理的,所以把這次需要的依賴包引用列出來:
org.springframework spring-context-support 4.0.2.RELEASE org.quartz-scheduler quartz 2.2.1
當(dāng)然,這是要跟對應(yīng)的Spring的版本是要匹配的。我們這里的工程是4.0.2。前一個(gè)包spring-context-support,主要的作用是作為Spring與quartz的溝通管理的部件,如果注釋掉就會報(bào)這樣的錯(cuò)誤
在MAVEN配置完所需要添加的包之后(其他的包,這里暫時(shí)不擴(kuò)展開說了,本文只討論在完整Spring工程項(xiàng)目下的配置),我們就可以開始動手給這個(gè)項(xiàng)目添加,定時(shí)任務(wù)的功能模塊了。
第二步,從web的項(xiàng)目的起源,web.xml 中改動做起。由于原本的項(xiàng)目Spring的配置文件是Spring-mvc.xml,我這里就把定時(shí)任務(wù)的配置文件改成了spring-time.xml。這樣就可以通過同一個(gè)掃描的配置在啟動的時(shí)候去讀取了。具體的代碼如下:
contextConfigLocation classpath:spring-*.xml
然后給大家看一下我的工程結(jié)構(gòu):
通過這樣的配置,項(xiàng)目就會知道怎么去調(diào)用了。實(shí)現(xiàn)了這一步接下來我們就可以繼續(xù)往下走了;
第三步,就是要完成spring-timer.xml這個(gè)定時(shí)任務(wù)的核心配置了。在這個(gè)文件配置中,我們主要是完成三件事情:
1.配置啟動的設(shè)置,關(guān)于懶加載(簡單說一下,比如把某個(gè)變量初始化為null,也是一種懶加載,即在服務(wù)啟動之后,只有在實(shí)際被調(diào)用的時(shí)候才會實(shí)例化,否則是不會在內(nèi)存中存在的,只是邏輯上的??梢允】臻g,但是也可能會導(dǎo)致,問題延遲很久才會被發(fā)現(xiàn),此處不再詳細(xì)解說),以及觸發(fā)器的配置;
2.quartz-2.x的配置,包含定時(shí)任務(wù)觸發(fā)之后要調(diào)用的job的名字,以及corn表達(dá)式(即定時(shí)表達(dá)式,控制程序在何時(shí)重復(fù)執(zhí)行的原因,本次在會在后續(xù)補(bǔ)充關(guān)于cron表達(dá)式的內(nèi)容);
3.配置job的內(nèi)容和job對應(yīng)的具體的類。
好了邏輯流程解說完畢,上代碼:
完成這里的配置文件配置之后,就可以開始下一步,具體的業(yè)務(wù)邏輯實(shí)現(xiàn)了;
第四步,具體業(yè)務(wù)邏輯實(shí)現(xiàn)。
這里要注意的是下圖中的兩個(gè)點(diǎn)
上圖是具體的業(yè)務(wù)實(shí)現(xiàn)的類,里面的名字和下圖定時(shí)任務(wù)配置的要相同。
完成上述之后,我們可以啟動項(xiàng)目看看實(shí)際效果了。
這里可以看到,定時(shí)任務(wù)按照我們之前在配置中的
看完上述內(nèi)容,你們對如何配置Spring定時(shí)任務(wù)有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。