1 概念
SpringTask是spring3.0后自主提供的定时任务的工具, spring-task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。这里主要介绍SpringTask的使用方式
2 xml配置方式
1.添加task命名空间
2.Spring创建任务所在的类型的对象,配置定时任务(在spring主配置文件中)
<!--Spring 定时任务 xml写法-->
<bean id="writeIndex" class="com.project.writerindex.WriteIndex"></bean>
<!--配置定时任务-->
<task:scheduled-tasks>
<!--
ref:执行的类
method:执行的方法
cron:
-->
<task:scheduled ref="writeIndex" method="writeRun" cron=" */3 * * * * ? "/>
</task:scheduled-tasks>
3.在测试方式中获取容器,启动容器
3 注解方式
1.添加task的注解驱动(在spring主配置文件中)
<!--task的注解驱动-->
<task:annotation-driven/>
2.添加IoC注解,并且在任务类上标注@Component注解
<!--IoC注解-->
<context:component-scan base-package="com.project.writerindex"/>
3.执行的方法上标注@scheduled注解
•任务类必须在spring的容器中, 否则@Scheduled不起效
4 cron表达式
一个cron表达式有至少6个用空格分隔的时间元素。
1. 按顺序依次为
1. 秒(0~59)
2. 分钟(0~59)
3. 小时(0~23)
4. 天(0~31)
5. 月(0~11)
6. 星期(1~7 1为SUN-依次为SUN,MON,TUE,WED,THU,FRI,SAT)
7. 年份(1970-2099)
2. 举例说明:
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
*/1 * * * * ? 每隔一秒执行一次