STEP 1:在spring配置文件中添加相应配置,以支持定时任务的注解实现
(一)在xml里加入task的命名空间
<!-- beans里添加:-->
xmlns:task="http://www.springframework.org/schema/task"
<!-- xsi:schemaLocation里添加:-->
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd
(二)启用注解驱动的定时任务
<task:annotation-driven scheduler="scheduler"/>
(三)配置定时任务的线程池
注:spring定时任务默认单线程,推荐配置线程池,若不配置多任务下会有问题。
<task:scheduler id="scheduler" pool-size="10" />
以上配置完成后,后续无需再修改配置文件。
STEP 2:代码部分只需要加上两个注解即可
import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component("taskJob")
public class Test {
@Scheduled(cron = "0/5 * * * * ?")
public void showTime() {
System.out.println(new Date());
}
}
(一)在定时类上加@Component("taskJob")
(二)在需要定时执行的方法上加@Scheduled,其中
@Scheduled(fixedRate = 60000) 表示每60秒执行一次
@Scheduled(cron = "0 0 1 * * ?") 表示每天凌晨1点时执行(在线cron表示式生成器:http://cron.qqe2.com/)