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年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获知最新一线技术干货!
