当前位置: 代码迷 >> Web前端 >> 在Spring3中施用注解(@Scheduled)创建计划任务
  详细解决方案

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

热度:667   发布时间:2012-09-04 14:19:30.0
在Spring3中使用注解(@Scheduled)创建计划任务

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

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

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

?

示例如下

计划任务类:

Java代码??收藏代码
  1. /**?
  2. ?*?com.zywang.spring.task.SpringTaskDemo.java?
  3. ?*?@author?ZYWANG?2011-3-9?
  4. ?*/??
  5. package?com.zywang.spring.task;??
  6. ??
  7. import?org.springframework.scheduling.annotation.Scheduled;??
  8. import?org.springframework.stereotype.Component;??
  9. ??
  10. /**?
  11. ?*?Spring3?@Scheduled?演示?
  12. ?*?@author?ZYWANG?2011-3-9?
  13. ?*/??
  14. @Component??
  15. public?class?SpringTaskDemo?{??
  16. ??
  17. ????@Scheduled(fixedDelay?=?5000)??
  18. ????void?doSomethingWithDelay(){??
  19. ????????System.out.println("I'm?doing?with?delay?now!");??
  20. ????}??
  21. ??????
  22. ????@Scheduled(fixedRate?=?5000)??
  23. ????void?doSomethingWithRate(){??
  24. ????????System.out.println("I'm?doing?with?rate?now!");??
  25. ????}??
  26. ??????
  27. ????@Scheduled(cron?=?"0/5?*?*?*?*?*")??
  28. ????void?doSomethingWith(){??
  29. ????????System.out.println("I'm?doing?with?cron?now!");??
  30. ????}??
  31. }??

Spring配置文件:

Xml代码??收藏代码
  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <beans?xmlns="http://www.springframework.org/schema/beans"??
  3. ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:task="http://www.springframework.org/schema/task"??
  4. ????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd??
  5. ????????http://www.springframework.org/schema/task?http://www.springframework.org/schema/task/spring-task-3.0.xsd">??
  6. ????<!--?Enables?the?Spring?Task?@Scheduled?programming?model?-->??
  7. ????<task:executor?id="executor"?pool-size="5"?/>??
  8. ????<task:scheduler?id="scheduler"?pool-size="10"?/>??
  9. ????<task:annotation-driven?executor="executor"?scheduler="scheduler"?/>??
  10. </beans>??

?

?以上内容基于Spring 3.0.5 版本运行,参考文档为spring-framework-reference-3.0.5.pdf

  相关解决方案