SpringBoot整合Quartz(手把手教你5步搞定)

SpringBoot整合Quartz(手把手教你5步搞定)-mikechen

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」公众号,获知最新一线技术干货!

评论交流
    说说你的看法