备注:本示例中我们使用的是spring 4.2.5版本。
在spring的上下文文件中修改标签:
增加Xmlns标签:xmlns:task=http://www.springframework.org/schema/task
修改xsi:schemaLocation标签,增加内容如下:
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.2.xsd
增加任务扫描:
XML如下:
xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instancexmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:tx="ttp://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="ttp://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd"> 实现类使用注解@Component作为注释 Java实例: @Component public class Cron { @Scheduled(cron= " 0 0 * * * ?") publicvoid runTaskPerHour() { System.out.println("每小时的0分0秒执行一次: "+ new Date()); } @Scheduled(fixedRate= 5000) publicvoid runTaskPerFiveSecond() { System.out.println("立即执行,每5秒执行一次: "+ new Date()); } @Scheduled(fixedRate= 5000, initialDelay = 10000) publicvoid runTaskPerFiveSecondDelay() { System.out.println("延迟10秒执行,每5秒执行一次: "+ new Date()); } } 以下参考ITEYE Cron介绍: 一个cron表达式有至少6个有空格分隔的时间元素。 按顺序依次为 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) 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?. "0 0 10,14,16 * * ?" 每天上午10点,下午2点,4点 "0 0/30 9-17 * * ?" 朝九晚五工作时间内每半小时 "0 0 12 ? * WED" 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 L * ?" 每月最后一日的上午10:15触发