當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
SpringBoot2.x整合quartz定时任务 快速入门
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot2.x整合quartz定时任务 快速入门
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. maven依賴
- 2. QuartConfig配置文件
- 3. 創(chuàng)建一個(gè)業(yè)務(wù)處理類UserService
- 4. Job類 調(diào)用方法
- 5. 手動(dòng)將對(duì)象注入導(dǎo)視牌SringIOC容器類
- 6. 啟動(dòng)類加注解
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.*;@Configuration public class QuartConfig {// 1.創(chuàng)建job對(duì)象@Beanpublic JobDetailFactoryBean jobDetailFactoryBean() {JobDetailFactoryBean factory = new JobDetailFactoryBean();factory.setJobClass(QuartzDemo.class);return factory;}// 2.創(chuàng)建Tigger對(duì)象 簡(jiǎn)單 // @Bean // public SimpleTriggerFactoryBean simpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) { // SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean(); // //關(guān)聯(lián)JobDetail對(duì)象 // factory.setJobDetail(jobDetailFactoryBean.getObject()); // factory.setRepeatInterval(2000); // factory.setRepeatCount(5); // //設(shè)置重次數(shù) // return factory; // }@Beanpublic CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean) {CronTriggerFactoryBean factory = new CronTriggerFactoryBean();factory.setJobDetail(jobDetailFactoryBean.getObject());//設(shè)置觸發(fā)時(shí)間factory.setCronExpression("0/2 * * * * ?");return factory;}// 3.創(chuàng)建scheduler對(duì)象@Beanpublic SchedulerFactoryBean schedulerFactoryBean(CronTriggerFactoryBean cronTriggerFactoryBean, MyAdaptableJobFactory myAdaptableJobFactory) {SchedulerFactoryBean factory = new SchedulerFactoryBean();//關(guān)聯(lián)Tiggerfactory.setTriggers(cronTriggerFactoryBean.getObject());//注入對(duì)象并完成實(shí)例化factory.setJobFactory(myAdaptableJobFactory);return factory;}}3. 創(chuàng)建一個(gè)業(yè)務(wù)處理類UserService
package com.gblfy;import org.springframework.stereotype.Service;@Service public class UserService {//模擬操作數(shù)據(jù)庫(kù)操作業(yè)務(wù)邏輯public void addUser() {System.out.println("add users....");} }4. Job類 調(diào)用方法
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. 手動(dòng)將對(duì)象注入導(dǎo)視牌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.springframework.stereotype.Component;/*** 手動(dòng)將對(duì)象注入導(dǎo)視牌SringIOC容器類*/ @Component("myAdaptableJobFactory") public class MyAdaptableJobFactory extends AdaptableJobFactory {@Autowired//可以將一個(gè)對(duì)象添加到spring的ioc容器中,并完成對(duì)象屬性的注入private AutowireCapableBeanFactory autowireCapableBeanFactory;/*** 該方法需要將實(shí)例化的任務(wù)對(duì)象手動(dòng)添加到springioc的容器中,并完成對(duì)象的注入** @param bundle* @return* @throws Exception*/@Overrideprotected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {Object obj = super.createJobInstance(bundle);//將obj對(duì)象添加到spring的ioc容器中,并完成注入this.autowireCapableBeanFactory.autowireBean(obj);return obj;} }6. 啟動(dòng)類加注解
@EnableScheduling總結(jié)
以上是生活随笔為你收集整理的SpringBoot2.x整合quartz定时任务 快速入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux 环境安装DBI和DBD_03
- 下一篇: Spring项目启动加载xml配置文件替