Spring 计划任务
计划任务在Spring 中实现变得非常简单:
1. 首先通过在配置类中注解 @EnableScheduling 来开启对计划任务的支持
2. 然后在你执行任务的方法上注解 @Scheduled 来声明这是一个计划任务
例:
1. 计划任务执行业务类
package com.cz.scheduledTask; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.Date; /** * 定时任务业务处理类 * Created by Administrator on 2017/5/7. */ @Service public class ScheduledTaskService { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // 每隔固定的时间执行 @Scheduled(fixedRate = 5000) public void reportCurrentTime(){ System.out.println("每隔五秒执行一次 " + dateFormat.format(new Date())); } // 按照指定时间执行 @Scheduled(cron = "0 30 23 ? * *") public void fixTimeExecution(){ System.out.println("在指定时间 " + dateFormat.format(new Date()) + " 执行"); } }
2. 配置类
package com.cz.scheduledTask; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; /** * Created by Administrator on 2017/5/7. */ @Configuration @ComponentScan("com.cz.scheduledTask") @EnableScheduling // 开启对计划任务的支持 public class TaskSchedulerConfig { }
3. 测试执行
package com.cz.scheduledTask; import org.hibernate.validator.cfg.context.AnnotationIgnoreOptions; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** * Created by Administrator on 2017/5/7. */ public class TaskScheduler { public static void main(String[] args) { // 启动 Spring 上下文 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskSchedulerConfig.class); } }
4. 执行结果