前提注意:配置文件中若是 default-lazy-init="true",刪掉或設置成false,否則註解會失效(這個坑找了很久)。
1、說明
之前項目一直使用Quartz的定時任務,雖然其功能強大,可是配置文件極其複雜,而且一個class下只能執行一個方法(貌似是)。定時任務多了之後對於維護xml配置文件時一件極爲頭疼的事情。
前段時間把Quartz整合實例化入數據庫了,作了一個任務列表,進行增刪查改,的確是簡單多了。在項目不重啓的狀況下能夠對任務進行各類你想要的操做。如圖所示操做:html
但若是隻是簡單的跑個任務其實spring升級到3後已經自帶任務調度器了,相比之下Spring task不管是理解仍是使用都簡單不少。可是Quartz有線程和線程管理以及集羣等高級特性,因此你們能夠自行選擇了。不過通常狀況下,以爲SpringTask足夠了。
Spring Task提供兩種方式進行配置,註解和配置文件。使用註解雖然簡單,不用配置xml,可是相對於修改比較頻繁的任務來講,打包編譯的過程也是挺麻煩的,建議使用配置文件實現。
2、配置java
1)xml配置spring
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" 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/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd"> <description>Spring Configuration</description> <context:component-scan base-package="task"/> <!-- 配置任務線性池 --> <task:executor id="executor" pool-size="10" /> <task:scheduler id="scheduler" pool-size="10"/> <task:annotation-driven scheduler="scheduler" executor="executor" proxy-target-class="true"/> <!-- 配置文件實現 若是使用配置文件實現 把註釋解開便可而後 刪除掉代碼的註解--> <!-- <task:scheduled-tasks scheduler="scheduler"> <task:scheduled ref="TestJob" method="test" cron="0/1 * * * * ?"/> </task:scheduled-tasks> --> </beans>
2)代碼實現數據庫
package task; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component("TestJob") public class TestJob { @Scheduled(cron = "0/5 * * * * ?")//每隔5秒隔行一次 public void test1() { System.out.println("job1 開始執行"); } @Scheduled(cron = "0/5 * * * * ?")//每隔5秒隔行一次 public void test2() { System.out.println("job2 開始執行"); } }
項目啓動後運行結果:spa
CSDN下載:http://download.csdn.net/detail/zhulin2012/9576741.net
百度雲下載:http://pan.baidu.com/s/1boW6WP5線程
科幫網code