spring計劃任務

Spring3中增強了註解的使用,其中計劃任務也獲得了加強,如今建立一個計劃任務只須要兩步就完成了:java

  1. 建立一個Java類,添加一個無參無返回值的方法,在方法上用@Scheduled註解修飾一下;
  2. 在Spring配置文件中添加三個<task:**** />節點;

最後說明一下,第一步建立的Java類要成爲Spring可管理的Bean,能夠直接寫在XML裏,也能夠@Component一下spring

計劃任務類:google

複製代碼
/** * com.zywang.spring.task.SpringTaskDemo.java * @author ZYWANG 2011-3-9 */ package com.zywang.spring.task; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * Spring3 @Scheduled 演示 * @author ZYWANG 2011-3-9Spring配置文件: */ @Component public class SpringTaskDemo { @Scheduled(fixedDelay = 5000) void doSomethingWithDelay(){ System.out.println("I'm doing with delay now!"); } @Scheduled(fixedRate = 5000) void doSomethingWithRate(){ System.out.println("I'm doing with rate now!"); } @Scheduled(cron = "0/5 * * * * *") void doSomethingWith(){ System.out.println("I'm doing with cron now!"); } }
複製代碼

Spring配置文件:spa

複製代碼
<?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:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> <!-- Enables the Spring Task @Scheduled programming model --> <task:executor id="executor" pool-size="5" /> <task:scheduler id="scheduler" pool-size="10" /> <task:annotation-driven executor="executor" scheduler="scheduler" /> </beans>
複製代碼

須要注意的幾點:code

一、spring的@Scheduled註解  須要寫在實現上、xml

二、 定時器的任務方法不能有返回值(若是有返回值,spring初始化的時候會告訴你有個錯誤、須要設定一個proxytargetclass的某個值爲true、具體就去百度google吧)blog

三、實現類上要有組件的註解@Componentget

相關文章
相關標籤/搜索