當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot2.x整合quartz定时任务 快速入门
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot2.x整合quartz定时任务 快速入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. maven依賴
- 2. QuartConfig配置文件
- 3. 創建一個業務處理類UserService
- 4. 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.*;@Configuration public 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;@Service public 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.springframework.stereotype.Component;/*** 手動將對象注入導視牌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總結
以上是生活随笔為你收集整理的SpringBoot2.x整合quartz定时任务 快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 环境安装DBI和DBD_03
- 下一篇: Spring项目启动加载xml配置文件替