SpringBoot中关于定时任务有两个注解:
1.@Scheduled 2.@EnableScheduling
第一个用在你写定时任务的方法上;
第二个用在启动类上
关于简单定时器任务,官方文档也给予了说明
http://spring.io/guides/gs/scheduling-tasks/
下面开始案例:
为了方便日志输出,我们依赖了lombok这个jar包,
关于lombok可以参考SpringBoot如何不需要每次new Logger就可以使用log输出日志内容。
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
1.写一个启动定时任务的类:ScheduledTask
类上加上注解:
@Component
@Slf4j
package com.example.demo.scheduledTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.text.SimpleDateFormat;
@Component
@Slf4 j//lombok日志类
public class ScheduledTask {
private static final SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void scheduledTest(){
log.info("现在时间时:"+df.format(new Date()));
}
}
这里fixedRate时定时任务间隔时间,5000代表5秒,
2.启动类上加上注解@EnableScheduling
启动项目:
我们发现控制台输出内容:
说明我们启动成功了。
如果你不想用lombok的日志输出,也可以
private static final Logger log = LoggerFactory.getLogger(SchedulerTask.class);
创建一个Logger对象。这样子就不用依赖jar包了。