
1.添加Quartz依赖
使用Spring Initializr或手动创建一个新的Spring Boot项目,在项目的pom.xml文件中添加Quartz相关的依赖。
<dependencies>
<!-- Quartz依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
</dependencies>
2.创建Quartz作业类
定义一个实现org.quartz.Job接口的作业类,该接口包含execute(JobExecutionContext context)方法。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// 在这里编写需要定时执行的任务逻辑
}
}
3.配置Quartz调度器
在Spring Boot的配置文件(application.properties或application.yml)中配置Quartz调度器的相关属性。
# Quartz调度器配置 spring.quartz.job-store-type=jdbc spring.quartz.jdbc.initialize-schema=always
4.创建Quartz调度器工厂
创建一个org.springframework.scheduling.quartz.SchedulerFactoryBean对象,并配置其属性。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@Configuration
public class QuartzConfig {
@Bean
public SchedulerFactoryBean schedulerFactoryBean() {
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
// 其他属性配置...
return schedulerFactoryBean;
}
}
5.创建触发器和作业详情
使用Quartz的API在调度器中创建触发器和作业详情,并将其关联起来。
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean;
@Configuration
public class QuartzConfig {
// 创建作业详情
@Bean
public JobDetailFactoryBean jobDetailFactoryBean() {
JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
factoryBean.setJobClass(MyJob.class);
// 其他属性配置...
return factoryBean;
}
// 创建触发器
@Bean
public SimpleTriggerFactoryBean triggerFactoryBean(JobDetail jobDetail) {
SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean();
factoryBean.setJobDetail(jobDetail);
// 其他属性配置...
return factoryBean;
}
}
Spring Boot会自动启动Quartz调度器,并执行配置的定时任务,通过上述步骤,可以在Spring Boot中成功整合Quartz。
关于mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。