引入關鍵包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.3</version>
</dependency>
配置QuarzeConfig類
package cn.aadata.mdm.webservice.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import cn.aadata.mdm.quartz.MyJob;
@Configuration
@ComponentScan("cn.aadata.mdm.quartz.MyJob")
public class QuanzeConfig {
@Bean
public MyJob getMyJob(){
return new MyJob();
}
@Bean
public MethodInvokingJobDetailFactoryBean getMethodInvokingJobDetailFactoryBean(){
MethodInvokingJobDetailFactoryBean bean=new MethodInvokingJobDetailFactoryBean();
//使用set方式注入
bean.setTargetObject(getMyJob()); //定時執行的對象
bean.setTargetMethod("run"); //定時執行的方法
return bean;
}
//配置一個作業執行的觸發器操作,cron表達式可以制定規定時間的執行
@Bean
public CronTriggerFactoryBean getCronTriggerFactoryBean(){
CronTriggerFactoryBean bean=new CronTriggerFactoryBean();
bean.setJobDetail(getMethodInvokingJobDetailFactoryBean().getObject());//注入作業詳情
bean.setCronExpression("0/5 * * * * ?");//Cron表達式
return bean;
}
//配置一個方法調試類
@Bean
public SchedulerFactoryBean getSchedulerFactoryBean(){
SchedulerFactoryBean bean=new SchedulerFactoryBean();
bean.setTriggers(getCronTriggerFactoryBean().getObject());
return bean;
}
}
任務類
package cn.aadata.mdm.quartz;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyJob {
public void run() {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("自定義的作業類執行了:" +
sdf.format(new Date()));
}
}