1. 程式人生 > >spring中通過配置檔案方式實現定時任務

spring中通過配置檔案方式實現定時任務

Spring3.0以後自帶有定時任務的實現功能:

一、修改spring配置檔案的內容:在檔案頭新增名稱空間和描述

  1. <?xmlversion="1.0"encoding="UTF-8"? >
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.      。。。。。。
  5.     xmlns:task="http://www.springframework.org/schema/task"           
  6.     xsi:schemaLocation
    ="http://www.springframework.org/schema/beans

  7.           。。。。。。
  8.           http://www.springframework.org/schema/task 
  9.           http://www.springframework.org/schema/task/spring-task-3.0.xsd">
  10. <task:annotation-driven />                   //支援註解

二、寫對應程式執行時間的配置檔案:建立一個task.properties配置檔案,內容如下

  1. jobs.schedu
    le.task1=
    0/10 * * * * ?      //每十秒執行一次
  2. jobs.schedule.task2=0  40 * * * ?          //每個小時的四十分執行一次
  3. jobs.schedule.task3=0  30  4 * * ?           //每天的四點半執行一次
  4. jobs.schedule.task4=0  0/50  * * * ?      //每五十分鐘執行一次

       更多時間的設定自行百度

三、對應定時任務執行類

  1. @PropertySource("classpath:task.properties")
  2. @Component
  3. public class test{
  4.       @Bean
  5.       public static PropertySourcesPlaceholderConfigurer propertyConfigInDev()
  6.       {
  7.                return new PropertySourcesPlaceholderConfigurer();                       //加上之後spring才能識別${}中的內容
  8.       }
  9.       @Value("${jobs.schedule.task2}")
  10.       public String abc;                                 //此時abc的內容為:0  40 * * * ?
  11.       @Scheduled(cron = "${jobs.schedule.task1}" )     //定義十秒執行一次
  12.       public void task(){
  13.                 System.out.println("每十秒輸出一次該語句");
  14.       }
  15. }