国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Spring 3實(shí)現(xiàn)定時(shí)任務(wù)

前面已經(jīng)講到了spring 3整合Quartz 2來(lái)實(shí)現(xiàn)時(shí)任務(wù),其實(shí)從spring 3開(kāi)始,它本身就已經(jīng)自帶了一套自主開(kāi)發(fā)的定時(shí)任務(wù)工具Spring-Task,可以將它看成是一個(gè)輕量級(jí)的Quartz,而且使用起來(lái)十分簡(jiǎn)單,除spring相關(guān)的包外不需要額外的包,支持注解和配置文件兩種形式。

第一種:配置文件方式

第一步:編寫(xiě)作業(yè)類(lèi),它是一個(gè)普通的Java類(lèi),不需要繼承和實(shí)現(xiàn)任何類(lèi)和接口:

  1. @Service    
  2. public class TaskJob {    
  3.     public void job1() {    
  4.         System.out.println("任務(wù)成功運(yùn)行。。。");    
  5.     }    
  6. }  

第二步:在spring配置文件頭中添加spring-task的命名空間及描述:

  1. <beans xmlns="http://www.springframework.org/schema/beans"    
  2.     xmlns:task="http://www.springframework.org/schema/task"     
  3.     ...    
  4.     xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">  
第三步:spring配置文件中設(shè)置具體的任務(wù):

  1. <task:scheduled-tasks>     
  2.         <task:scheduled ref="taskJob" method="job1" cron="0 * * * * ?"/>     
  3. </task:scheduled-tasks>    
  4. <context:component-scan base-package=" com.task " />  

說(shuō)明:ref參數(shù)指定的即任務(wù)類(lèi),method指定的即需要運(yùn)行的方法,cron及cronExpression表達(dá)式,具體寫(xiě)法這里就不介紹了。

<context:component-scan base-package="com.task" />這個(gè)配置不消多說(shuō)了,spring掃描注解用的。

到這里配置就完成了,是不是很簡(jiǎn)單。

第二種:使用注解形式

從spring 2.5開(kāi)始,可以方便的使用注解來(lái)聲明bean,對(duì)于定時(shí)任務(wù),同樣提供了注解@Scheduled,我們?cè)撟⒔獾亩x:

  1. @Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.ANNOTATION_TYPE})    
  2. @Retention(RetentionPolicy.RUNTIME)    
  3. @Documented    
  4. public @interface Scheduled    
  5. {    
  6.   public abstract String cron();    
  7.   public abstract long fixedDelay();    
  8.   public abstract long fixedRate();    
  9. }  

可以看出該注解可以接收三個(gè)參數(shù),分別表示的意思是:

cron:指定cron表達(dá)式

fixedDelay:官方文檔解釋?zhuān)篈n interval-based trigger where the interval is measured from the completion time of the previous task. The time unit value is measured in milliseconds.即表示從上一個(gè)任務(wù)完成開(kāi)始到下一個(gè)任務(wù)開(kāi)始的間隔,單位是毫秒。

fixedRate:官方文檔解釋?zhuān)篈n interval-based trigger where the interval is measured from the start time of the previous task. The time unit value is measured in milliseconds.即從上一個(gè)任務(wù)開(kāi)始到下一個(gè)任務(wù)開(kāi)始的間隔,單位是毫秒。

下面我們使用注解來(lái)實(shí)現(xiàn)一下看看:

第一步:還是編寫(xiě)我們的任務(wù)類(lèi),和上面基本一樣,只不過(guò)方法上添加了@Scheduled注解。

  1. @Component("taskJob")    
  2. public class TaskJob {    
  3.     @Scheduled(cron = "0 0 3 * * ?")    
  4.     public void run() {    
  5.         System.out.println("任務(wù)成功運(yùn)行。。。");    
  6.     }    
  7. }  
第二步:同樣需要在spring配置文件頭中添加spring-task的命名空間及描述,另外添加掃描spring-task的配置:
  1. <beans xmlns="http://www.springframework.org/schema/beans"    
  2.     xmlns:task="http://www.springframework.org/schema/task"     
  3.     ...    
  4.     xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">  
  5.     ...  
  6.     <!-- 開(kāi)啟這個(gè)配置,spring才能識(shí)別@Scheduled注解 -->   
  7.     <task:annotation-driven/>  
  8.     ...  
  9. </beans>  
配置完畢,我們的任務(wù)已經(jīng)可以運(yùn)行了。當(dāng)然你也可以把cron參數(shù)換成另外的兩個(gè),自己嘗試一下吧。spring-task還有很多的參數(shù),這里就不一一解釋了,具體可以查看官方的文檔。




本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
spring通過(guò)注解添加定時(shí)任務(wù)
SpringMvc自動(dòng)任務(wù)調(diào)度之task實(shí)現(xiàn)
spring 定時(shí)任務(wù)@Scheduled
Spring定時(shí)任務(wù)的幾種實(shí)現(xiàn)
深入淺出Spring task定時(shí)任務(wù)
使用Spring Task輕松完成定時(shí)任務(wù)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服