SpringBoot整合Quartz框架步骤
- 在SpringBoot项目的pom.xml文件中引入依赖
<!-- quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<artifactId>slf4g-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- 该依赖必加,里面有spring对schedule的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
- 创建任务调度根据需求编写业务逻辑
import org.springframework.stereotype.Component;
@Component
public class TaskHandle {
public void Task1() {
System.out.println("定时任务一执行啦!!!");
}
}
- 使用@Configuration注解来定义一个配置类
import java.text.SimpleDateFormat;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration //相当于xml文件中的<beans>
public class ConfigTools {
/**
* 格式化时间
* @return
*/
@Bean //把返回值类型当做bean
public SimpleDateFormat dataFormate() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}
备注:@Configuration,@Bean这两个注解代替xml配置,@Configuration相当于xml 中的标签@Bean相当于标签,通常两者结合使用
- 创建一个类调度任务
@Component
@EnableScheduling //标注启动定时任务
public class Task {
@Autowired
private SimpleDateFormat dateFormat;
@Autowired
private TaskHandle taskHandle;
// cron表达式,七个*(至少六个),(*/5)是一个、?是一个,从左到右分别表示:秒、分、时、日、月、周、年
//@Scheduled(cron = "*/5 * * * * * ?")
@Scheduled(fixedRate = 1000*3) //每隔三秒
public void reportCurrenTime() {
taskHandle.Task1();//调用定时任务
System.out.println("现在时间是:"+dateFormat.format(new Date()));
}
}
- 启动SpringBoot项目,自动启动定时任务