栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot集成Quartz框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot集成Quartz框架

SpringBoot集成Quartz框架 (一)集成环境:

​ Win10系统

​ JDK版本:11.0.13

​ SpringBoot版本:2.3.4。RELEASE

​ Quartz版本:2.3.2

(二)代码实现 前期准备:

1.创建一个空项目springboot-demo

2.springboot-demo下创建一个模快(maven项目,转为SpringBoot项目)

具体代码 1.引入依赖 pom.xml


    4.0.0

    org.jinjin
    quartz-demo
    1.0-SNAPSHOT


    
        11
        11
    

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE
    

    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-quartz
        
    


2.添加启动类
package org.jinjin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}
3.服务类
package org.jinjin.service;

import org.springframework.stereotype.Service;
import java.util.Date;


@Service
public class DemoService {
    
   
    public void test(){
        System.out.println(new Date().toLocaleString());
    }
    
    public void test1(){
        System.out.println("当前时间:"+new Date().toLocaleString());
    }
}
4.添加quartz配置类(1个定时任务案例)
package org.jinjin.quartz;

import org.jinjin.service.DemoService;
import org.quartz.CronTrigger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.expression.ParseException;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.util.Objects;


@Configuration //标注是配置类
public class QuartzConfigurationOne {
    
    @Bean(name = "detailFactoryBean")
    public MethodInvokingJobDetailFactoryBean detailFactoryBean(DemoService demoService){
        MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
        bean.setTargetObject (demoService);
        bean.setTargetMethod ("test");
        bean.setConcurrent (false);
        return bean;
    }

    
    @Bean(name = "cronTriggerBean")
    public CronTriggerFactoryBean cronTriggerBean(@Qualifier("detailFactoryBean") MethodInvokingJobDetailFactoryBean detailFactoryBean){
        CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
        tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean.getObject()));
        try {
            tigger.setCronexpression("0/5 * * * * ? ");//每5秒执行一次
        } catch (ParseException e) {
            e.printStackTrace ();
        }
        return tigger;
    }

    
    @Bean
    public SchedulerFactoryBean schedulerFactory(@Qualifier("cronTriggerBean") CronTrigger cronTriggerBean){
        SchedulerFactoryBean bean = new SchedulerFactoryBean ();
        bean.setTriggers(cronTriggerBean);
        return bean;
    }
}

启动项目查看效果:

5.添加quartz配置类(多个定时任务案例)
package org.jinjin.quartz;

import org.jinjin.service.DemoService;
import org.quartz.CronTrigger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.expression.ParseException;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.util.Objects;


@Configuration
public class QuartzConfiguration {

    
    @Bean(name = "detailFactoryBean")
    public MethodInvokingJobDetailFactoryBean detailFactoryBean(DemoService demoService){
        MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
        bean.setTargetObject (demoService);
        bean.setTargetMethod ("test");
        bean.setConcurrent (false);
        return bean;
    }

    @Bean(name = "detailFactoryBean1")
    public MethodInvokingJobDetailFactoryBean detailFactoryBean1(DemoService demoService){
        MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
        bean.setTargetObject (demoService);
        bean.setTargetMethod ("test1");
        bean.setConcurrent (false);
        return bean;
    }


    
    @Bean(name = "cronTriggerBean")
    public CronTriggerFactoryBean cronTriggerBean(@Qualifier("detailFactoryBean") MethodInvokingJobDetailFactoryBean detailFactoryBean){
        CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
        tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean.getObject()));
        try {
            tigger.setCronexpression("0/10 * * * * ? ");//每10秒执行一次
        } catch (ParseException e) {
            e.printStackTrace ();
        }
        return tigger;
    }

    @Bean(name = "cronTriggerBean1")
    public CronTriggerFactoryBean cronTriggerBean1(@Qualifier("detailFactoryBean1")MethodInvokingJobDetailFactoryBean detailFactoryBean1){
        CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
        tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean1.getObject()));
        try {
            tigger.setCronexpression("0/5 * * * * ? ");//每10秒执行一次
        } catch (ParseException e) {
            e.printStackTrace ();
        }
        return tigger;
    }

    
    @Bean
    public SchedulerFactoryBean schedulerFactory(@Qualifier("cronTriggerBean") CronTrigger cronTriggerBean, @Qualifier("cronTriggerBean1") CronTrigger cronTriggerBean1){
        SchedulerFactoryBean bean = new SchedulerFactoryBean ();
        bean.setTriggers(cronTriggerBean,cronTriggerBean1);
        return bean;
    }
}

启动项目查看效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号