1. 程式人生 > >springboot整合quzytz(簡單易使用複製即可)

springboot整合quzytz(簡單易使用複製即可)

pom

  <dependency>             <groupId>org.quartz-scheduler</groupId>             <artifactId>quartz</artifactId>             <version>2.2.1</version>      </dependency>

1 先配置一個jobFactory類 extends 繼承AdaptableJobFactory

@Component("jobFactory") public class MyJobFactory extends AdaptableJobFactory {     @Autowired     private AutowireCapableBeanFactory autowireCapableBeanFactory;

    @Override     protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {         // TODO Auto-generated method stub         Object jobInstance = super.createJobInstance(bundle);         autowireCapableBeanFactory.autowireBean(jobInstance);         return jobInstance;     }

2.建立quartz配置類

package test.conntroller.quaytz;

import org.quartz.spi.JobFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.CronTriggerFactoryBean; import org.springframework.scheduling.quartz.JobDetailFactoryBean; import org.springframework.scheduling.quartz.SchedulerFactoryBean;

@Configuration public class quzrtzConfig {

    /**      * 1.建立Job物件      */     @Bean     public JobDetailFactoryBean getJobDetailFactoryBean(){         JobDetailFactoryBean factory = new JobDetailFactoryBean();                  //關聯我們定義Job類 也就是我們需要定時的方法         factory.setJobClass(MyJob.class);                  return factory;     }          /**      * 2.建立Trigger      */     /*@Bean     public SimpleTriggerFactoryBean getSimpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean){         SimpleTriggerFactoryBean factory = new SimpleTriggerFactoryBean();                  //關聯JobDetail物件         factory.setJobDetail(jobDetailFactoryBean.getObject());                  //重複間隔時間(毫秒為單位)         factory.setRepeatInterval(5000);                  //重複次數         factory.setRepeatCount(4);                  return factory;     }*/          @Bean      public CronTriggerFactoryBean getSimpleTriggerFactoryBean(JobDetailFactoryBean jobDetailFactoryBean){         CronTriggerFactoryBean factory = new CronTriggerFactoryBean();                  //關聯JobDetail物件         factory.setJobDetail(jobDetailFactoryBean.getObject());         //時間         factory.setCronExpression("0/3 * * * * ?");                  return factory;     }               /**      * 3.建立Scheduler物件      */     @Bean     public SchedulerFactoryBean getSchedulerFactoryBean(CronTriggerFactoryBean triggerFactoryBean,JobFactory jobFactory){         SchedulerFactoryBean factory = new SchedulerFactoryBean();                  //關聯trigger         factory.setTriggers(triggerFactoryBean.getObject());                  //重新JobFactory         factory.setJobFactory(jobFactory);                  return factory;     }      }

3.建立Myjob類 implements 實現Job的execute

exceute裡就是我們定時執行的程式碼

public class MyJob implements Job{

           public void execute(JobExecutionContext context) throws JobExecutionException {         //System.out.println(new Date()+"1111111");             } }