引入关键包
<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()));
}
}