**
轻量级Spring定时任务(Spring-task)
**
Spring3.0以后自主开发的定时任务工具,spring-task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。
第一种:基于注解
1、spring.xml中对应位置加入
xmlns:task=“http://www.springframework.org/schema/task”
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
定时任务开关
<task:annotation-driven />
另外,注解扫描是必须的
<context:component-scan base-package=“com._21cn.flowgate.*” />
2、任意一个测试类
@Component
public class MyTask {
@Scheduled(cron = "0/3 * * * * ?")
public void myjob() {
System. out.println( "task execing ...");
}
第二种:基于xml配置
1、在上面基于注解的配置基础上加上
(bean路径指向定时任务执行类)
<task:scheduled-tasks >
<task:scheduled ref =“taskTest” method=“show” cron= “/5 * * * * ?" />
<task:scheduled ref =“taskTest” method=“print” cron= "/10 * * * * ?”/>
</task:scheduled-tasks >
关于cron表达式,如果不去理解?很容易被用错
- 每一位表示的是 [ 秒 分 时 日 月 周 年]
CRON表达式 含义
“0 0 12 * * ?” 每天中午十二点触发
“0 15 10 ? * *” 每天早上10:15触发
“0 15 10 * * ?” 每天早上10:15触发
“0 15 10 * * ? *” 每天早上10:15触发
“0 15 10 * * ? 2005” 2005年的每天早上10:15触发
“0 * 14 * * ?” 每天从下午2点开始到2点59分每分钟一次触发
“0 0/5 14 * * ?” 每天从下午2点开始到2:55分结束每5分钟一次触发
“0 0/5 14,18 * * ?” 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
“0 0-5 14 * * ?” 每天14:00至14:05每分钟一次触发
“0 10,44 14 ? 3 WED” 三月的每周三的14:10和14:44触发
“0 15 10 ? * MON-FRI” 每个周一、周二、周三、周四、周五的10:15触发