首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

spring3.0设立定时任务

2013-12-26 
spring3.0设置定时任务今天做个小需求,需要用到定时器。?就把以前写过的配置文件模板直接复制过来,又顺手点

spring3.0设置定时任务

今天做个小需求,需要用到定时器。?

就把以前写过的配置文件模板直接复制过来,又顺手点进去看了一下源码,发现TimerFactoryBean、ScheduledTimerTask都已经被标记成@Deprecated了?

Java代码?spring3.0设立定时任务?spring3.0设立定时任务spring3.0设立定时任务
  1. @Deprecated??
  2. public?class?TimerFactoryBean?implements?FactoryBean<Timer>,?BeanNameAware,?InitializingBean,?DisposableBean??
[java]?view plaincopy?
  1. @Deprecated??
  2. public?class?TimerFactoryBean?implements?FactoryBean<Timer>,?BeanNameAware,?InitializingBean,?DisposableBean??

?

Java代码?spring3.0设立定时任务?spring3.0设立定时任务spring3.0设立定时任务
  1. @Deprecated??
  2. public?class?ScheduledTimerTask??
[java]?view plaincopy?
  1. @Deprecated??
  2. public?class?ScheduledTimerTask??


那肯定就不乐意用了,就上网找了找spring3.0之后的新用法,果然是有变化,而且比以前简单了很多,在这里记录一下?

我记得以前那种做法,业务类是要继承自TimerTask才行的,现在就不用了,是一个pojo就可以?

Java代码?spring3.0设立定时任务?spring3.0设立定时任务spring3.0设立定时任务
  1. public?class?TestService?{ ??
  2. ??
  3. ????private?Logger?logger?=?LoggerFactory.getLogger(TestService.class); ??
  4. ??
  5. ????public?void?sayHello()?{ ??
  6. ????????System.out.println("hello?world"); ??
  7. ????} ??
  8. ??
  9. ????public?void?sayBye()?{ ??
  10. ????????System.out.println("bye?world"); ??
  11. ????} ??
  12. ??
  13. }??
[java]?view plaincopy?
  1. public?class?TestService?{??
  2. ??
  3. ????private?Logger?logger?=?LoggerFactory.getLogger(TestService.class);??
  4. ??
  5. ????public?void?sayHello()?{??
  6. ????????System.out.println("hello?world");??
  7. ????}??
  8. ??
  9. ????public?void?sayBye()?{??
  10. ????????System.out.println("bye?world");??
  11. ????}??
  12. ??
  13. }??


然后配置文件也更简单?

Xml代码?spring3.0设立定时任务?spring3.0设立定时任务spring3.0设立定时任务
  1. <beans?xmlns="http://www.springframework.org/schema/beans"??
  2. ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:task="http://www.springframework.org/schema/task"??
  3. ????xsi:schemaLocation="http://www.springframework.org/schema/beans??? ??
  4. ????http://www.springframework.org/schema/beans/spring-beans.xsd ??
  5. ????http://www.springframework.org/schema/task??? ??
  6. ????http://www.springframework.org/schema/task/spring-task-3.0.xsd">??
  7. ??
  8. ????<bean?id="testService"?class="com.xxx.spring.business.TestService"?/>??
  9. ??
  10. ????<task:scheduled-tasks>??
  11. ????????<task:scheduled?ref="testService"?method="sayHello"?cron="3/11?*?*?*?*??"?/>??
  12. ????????<task:scheduled?ref="testService"?method="sayBye"?cron="7/13?*?*?*?*??"?/>??
  13. ????</task:scheduled-tasks>??
  14. ??
  15. </beans>??
[xml]?view plaincopy?
  1. <beans?xmlns="http://www.springframework.org/schema/beans"??
  2. ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:task="http://www.springframework.org/schema/task"??
  3. ????xsi:schemaLocation="http://www.springframework.org/schema/beans?????
  4. ????http://www.springframework.org/schema/beans/spring-beans.xsd??
  5. ????http://www.springframework.org/schema/task?????
  6. ????http://www.springframework.org/schema/task/spring-task-3.0.xsd">??
  7. ??
  8. ????<bean?id="testService"?class="com.xxx.spring.business.TestService"?/>??
  9. ??
  10. ????<task:scheduled-tasks>??
  11. ????????<task:scheduled?ref="testService"?method="sayHello"?cron="3/11?*?*?*?*??"?/>??
  12. ????????<task:scheduled?ref="testService"?method="sayBye"?cron="7/13?*?*?*?*??"?/>??
  13. ????</task:scheduled-tasks>??
  14. ??
  15. </beans>??


只要用一个新增的<task:scheduled-tasks>就可以了?

就是有一点要注意一下,新的时间配置,是类似于cron的语法,比以前强大很多。?

不过我只用到了第一个参数:3/11,表示延迟3秒启动,间隔11秒;7/13表示延迟7秒启动,间隔13秒

?

热点排行