Spring - Task定時任務

襲冷發表於2018-03-06

一、說明

    Spring 3.0以後自帶的Spring Task,是一個輕量級的定時任務工具,而且使用起來很簡單,除spring相關的包外不需要額外的包,支援註解和配置檔案兩種形式


二、使用

    1、配置方式
        1)建立Job作業

    package com.xl.task;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class SimpleCfgJob {
    
        public void doJob() throws Exception {
    
            System.out.println("Job start...");
    
        }
    }
        2)配置Cfg檔案
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:task="http://www.springframework.org/schema/task"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 
            http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">  
    
        <!-- 任務列表 -->
        <task:scheduled-tasks>   
             
            <!-- 時間間隔的屬性配置,三必選一:-->
            <!--    fixed-delay: 上一個任務完成到下一個任務開始的間隔(毫秒);  fixed-rate: 上一個任務開始到下一個任務開始的間隔(毫秒);  cron: Cron表示式(秒 分 時 日 月 周幾 [年]) -->
            <task:scheduled ref="simpleCfgJob" method="doJob" fixed-rate="5000"/>
               
        </task:scheduled-tasks>  
        
        <!-- 註解掃描 -->
        <context:component-scan base-package="com.xl.task" /> 
     
    </beans>    
    2、註解方式
        1)建立Job作業

    package com.xl.task;
    
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    @Component
    public class SimpleAnnJob {
    
        @Scheduled(fixedRate = 5000)  //註解任務屬性
        public void doJob() throws Exception {
            
            System.out.println("Job start...");
    
        }
    }
        2)配置Cfg檔案
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:task="http://www.springframework.org/schema/task"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 
            http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">
    
        <!-- Spring掃描註解的配置 -->
        <context:component-scan base-package="com.xl.task" />
    
        <!-- 開啟這個配置, Spring才能識別@Scheduled註解 -->
        <task:annotation-driven />  
     
    </beans>













相關文章