Spring MVC 定時任務注解說明


一、注解說明。
Spring 自帶的定時任務執行@Scheduled注解,可以定時的、周期性的執行一些任務。查看@Scheduled的注解可以看到有以下三種:
1.1 String cron() default “” ;

//定義一個按時間執行的定時任務,在每天1:00執行一次。
@Scheduled(cron = "0 0 1* * ?") 
public void run() {
  //執行代碼
}

  example

"0 0 12 * * ?"    每天中午十二點觸發 
"0 15 10 ? * *"    每天早上10:15觸發 
"0 15 10 * * ?"    每天早上10:15觸發 
"0 15 10 * * ? *"    每天早上10:15觸發 
"0 15 10 * * ? 2005"    2005年的每天早上10:15觸發 
"0 * 14 * * ?"    每天從下午2點開始到2點59分每分鍾一次觸發 
"0 0/5 14 * * ?"    每天從下午2點開始到2:55分結束每5分鍾一次觸發 
"0 0/5 14,18 * * ?"    每天的下午2點至2:55和6點至6點55分兩個時間段內每5分鍾一次觸發 
"0 0-5 14 * * ?"    每天14:00至14:05每分鍾一次觸發 
"0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44觸發 
"0 15 10 ? * MON-FRI"    每個周一、周二、周三、周四、周五的10:15觸發 

  實例:

Task類:

Java對應代碼:

 

    package com.axb.cheney.task;  
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
    import org.springframework.scheduling.annotation.Scheduled;  
    import org.springframework.stereotype.Component;  
      
    /**   
     * 心跳更新。啟動時執行一次,之后每隔2秒執行一次   
     * @Scheduled(fixedRate = 1000*2)  
     */  
      
    @Component  
    public class ManageSql {  
      
        @Scheduled(cron="0/30 * * * * ? ") //間隔5秒執行      
        public void test(){  
            System.out.println("定時任務開始啦,哈哈哈");  
            System.out.println("<<<---------結束執行HR數據同步任務--------->>>");  
        }  
    }  

 

 

配置:

中添加以下對應內容 :
1、xmlns 加下面的內容:

xmlns:task="http://www.springframework.org/schema/task"


2、然后xsi:schemaLocation加下面的內容:
http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-4.1.xsd


3、最后是我們的task任務掃描注解
<task:annotation-driven/>


4、配置的掃描位置是
<context:component-scan base-package="com.XXX.task"></context:component-scan>

添加后,如下圖所示:

注意:

  1、spring的注解@Scheduled  需要寫在實現方法上;

  2、定時器的任務方法不能有返回值(如果有返回值,spring初始化的時候會告訴你有個錯誤、需要設定一個proxytargetclass的某個值為true),不能指向任何的參數;

  3、如果該方法需要與應用程序上下文的其他對象進行交互,通常是通過依賴注入來實現;

  4、實現類上要有組件的注解@Component。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM