个人博客网:https://wushaopei.github.io/ (你想要这里多有)
1、在SpringBoot 项目中使用@Scheduled注解执行定时任务:
配置pom.xml 依赖:
一般情况下,SpringBoot 的 相关依赖,如:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
是有包含对应 @Scheduled 定时注解启动所需要的jar包的,如下:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
2、创建定时类
(1)@Component : 将当前类实例化注入到容器中
(2)定时器的生效要素:
@Scheduled(cron="0/5 * * * * ? ") //每5秒执行一次
在程序启动时,定时器会开始计时,并根据设定时间执行设置好的任务内容,线程的执行是以单线程进行;
(3)创建以下定时类
package com.example.poiutis.quartz;
import com.example.poiutis.common.SystemLogHandler;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* @ClassName HandleTimeQuartz
* @Description TODO
* @Author wushaopei
* @Date 2019/7/25 20:23
* @Version 1.0
*/
@Component
public class HandleTimeQuartz {
// 系统日志
//private static SystemLogHandler systemLogger = SystemLogHandler
// .getLogger(HandleTimeQuartz.class);
private static Logger logger = LoggerFactory.getLogger(InvoiceController.class);
@Scheduled(cron="0/5 * * * * ? ")
public void userStatusJob() {
System.out.println("进入测试");
logger.info(System.currentTimeMillis()+"");
}
}
在 程序入口处添加注解
直接启动后会自动执行:效果如下: