SpringBoot整合定时任务
定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务。 在SpirngBoot中使用定时任务变的特别简单,不需要再像SpringMVC一样写很多的配置,只需要在启动类上增加一个@EnableScheduling注解即可。
启动类开启定时任务
1 //开启定时任务 2 @EnableScheduling 3 @RestController 4 @SpringBootApplication 5 //设置扫描的包名 6 @ComponentScan(basePackages = {"com.preach.controller"}) 7 public class InchlifcApplication { 8 public static void main(String[] args) { 9 SpringApplication.run(InchlifcApplication.class, args); 10 } 11 }
使用定时任务的类上使用注解@Compoment
,在方法上使用注解@Scheduled
1 @Component 2 public class IndexController { 3 4 /** 5 * 时间间隔,每隔5秒执行一次 6 */ 7 @Scheduled(fixedRate = 5000) 8 public void task() { 9 System.out.println("现在时间是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 10 } 11 }
@Compoment
用来标明这是一个被Spring管理的Bean@Scheduled
是方法上注解,添加该注解的方法即为单个计划任务,有两种方式可以定义:
-
@Scheduled(fixedRate = 3000)
通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行一次 -
@Scheduled(cron = "0 0/10 * * * ?")
使用cron表达式可按照指定时间执行,这里是每10分钟执行一次;