spring task是spring3.0之后自助开发的定时任务工具,使用起来很简单,只需要提供spring相关jar包就可以使用,并且支持注解和配置文件两种形式.
 每一个定时任务都需要在spring配置文件中task:scheduled-tasks标签内进行一条配置task:scheduled.
 ref指定时任务所在的类在spring容器中Javabean的id,method值指需要定时去执行的任务.
 Javabean需要配置进spring容器(注解或者配置文件)
 大致与配置文件形式相同.只需要将task:scheduled-tasks标签去除,并且加上以下标签:
<task:annotation-driven/> 在需要定时执行的方法上加上一下注解,给出例子:
@Component public class TimerManager { @Autowired private Service ervice; /** * @Scheduled 内cron表达式限定方法执行的时间 */ @Scheduled(cron = "0/5 * * * * ?") public void generateIncomePlan(){ logger.info("---------------定时任务开始--------------"); service.doSomeThing(); logger.info("---------------定时任务结束--------------"); } }cron表达式的格式
秒 分 时 日 月 周 [年]
各个字段的取值
字段名允许的值允许的特殊字符秒0~59, - * /分0~59, - * /时0~23, - * /日1~31, - * ? / L W C月1~12 or JAN~DEC, - * /周1~7 or SUN~SAT (1~7指从周日到周六), - * ? / L C #[年]1970~2099 or empty, - * /特殊字符的意义
特殊字符表示的意义,表示枚举的值(周中使用 1,2,3 表示每周的周日周一周二都执行)-表示范围(周中使用 1-5 表示从周一至周四都执行)*表示任意值/表示一个值的增加幅度(n/m表示从n开始每次增加m)?表示不确定的值.只用在日和周中,如果其中一个出现了*,另一个要匹配其意义,不能使用表示任意,应使用?表示满足之前的的任意值L在日中表示一个月中的最后一天,用在周中表示当月的最后一个周x(xL,x可省略,默认为7,周六)W只能出现在日期字段中,表示距离x日最近的工作日(xW),(日期字段中使用LW表示当月的最后一个工作日)#(x#y)表示当月的第7个周x(x为数字表示的周)Cron生成
http://cron.qqe2.com/
