700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > SpringBoot2.x整合quartz定时任务 快速入门

SpringBoot2.x整合quartz定时任务 快速入门

时间:2018-08-24 16:29:32

相关推荐

SpringBoot2.x整合quartz定时任务 快速入门

文章目录

1. maven依赖2. QuartConfig配置文件3. 创建一个业务处理类UserService4. Job类 调用方法5. 手动将对象注入导视牌SringIOC容器类6. 启动类加注解

1. maven依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency>

2. QuartConfig配置文件

package com.gblfy;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.quartz.*;@Configurationpublic class QuartConfig {// 1.创建job对象@Beanpublic JobDetailFactoryBean jobDetailFactoryBean() {JobDetailFactoryBean factory = new JobDetailFactoryBean();factory.setJobClass(QuartzDemo.class);return factory;}// 2.创建Tigger对象 简单// @Bean// public SimpleTriggerFactoryBean simpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {// SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();// //关联JobDetail对象// factory.setJobDetail(jobDetailFactoryBean.getObject());// factory.setRepeatInterval(2000);// factory.setRepeatCount(5);// //设置重次数// return factory;// }@Beanpublic CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {CronTriggerFactoryBean factory = new CronTriggerFactoryBean();factory.setJobDetail(jobDetailFactoryBean.getObject());//设置触发时间factory.setCronExpression("0/2 * * * * ?");return factory;}//3.创建scheduler对象@Beanpublic SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean, MyAdaptableJobFactory myAdaptableJobFactory) {SchedulerFactoryBean factory = new SchedulerFactoryBean();//关联Tiggerfactory.setTriggers(cronTriggerFactoryBean.getObject());//注入对象并完成实例化factory.setJobFactory(myAdaptableJobFactory);return factory;}}

3. 创建一个业务处理类UserService

package com.gblfy;import org.springframework.stereotype.Service;@Servicepublic class UserService {//模拟操作数据库操作业务逻辑public void addUser() {System.out.println("add users....");}}

4. Job类 调用方法

package com.gblfy;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.beans.factory.annotation.Autowired;import java.util.Date;/*** Job类*/public class QuartzDemo implements Job {@Autowiredprivate UserService userService;@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("execute:"+ new Date());this.userService.addUser();}}

5. 手动将对象注入导视牌SringIOC容器类

package com.gblfy;import org.quartz.spi.TriggerFiredBundle;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.config.AutowireCapableBeanFactory;import org.springframework.scheduling.quartz.AdaptableJobFactory;import org.ponent;/*** 手动将对象注入导视牌SringIOC容器类*/@Component("myAdaptableJobFactory")public class MyAdaptableJobFactory extends AdaptableJobFactory {@Autowired//可以将一个对象添加到spring的ioc容器中,并完成对象属性的注入private AutowireCapableBeanFactory autowireCapableBeanFactory;/*** 该方法需要将实例化的任务对象手动添加到springioc的容器中,并完成对象的注入** @param bundle* @return* @throws Exception*/@Overrideprotected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {Object obj = super.createJobInstance(bundle);//将obj对象添加到spring的ioc容器中,并完成注入this.autowireCapableBeanFactory.autowireBean(obj);return obj;}}

6. 启动类加注解

@EnableScheduling

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。