详解在Spring3中使用注解(@Scheduled)创建计划任务

时间:2021-09-28 02:30:15

Spring3中加强了注解的使用,其中计划任务也得到了增强,现在创建一个计划任务只需要两步就完成了:

  1. 创建一个Java类,添加一个无参无返回值的方法,在方法上用@Scheduled注解修饰一下;
  2. 在Spring配置文件中添加三个<task:**** />节点;

最后说明一下,第一步创建的Java类要成为spring可管理的Bean,可以直接写在XML里,也可以@Component一下

示例如下

计划任务类:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * 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-9
 */
@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配置文件:

?
1
2
3
4
5
6
7
8
9
10
<?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>

以上内容基于Spring 3.0.5 版本运行,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/zoucui/article/details/68490590