Win10系统
JDK版本:11.0.13
SpringBoot版本:2.3.4。RELEASE
Quartz版本:2.3.2
(二)代码实现 前期准备:1.创建一个空项目springboot-demo
2.springboot-demo下创建一个模快(maven项目,转为SpringBoot项目)
2.添加启动类4.0.0 org.jinjin quartz-demo 1.0-SNAPSHOT 11 11 org.springframework.boot spring-boot-starter-parent 2.3.4.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-quartz
package org.jinjin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
3.服务类
package org.jinjin.service;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class DemoService {
public void test(){
System.out.println(new Date().toLocaleString());
}
public void test1(){
System.out.println("当前时间:"+new Date().toLocaleString());
}
}
4.添加quartz配置类(1个定时任务案例)
package org.jinjin.quartz;
import org.jinjin.service.DemoService;
import org.quartz.CronTrigger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.expression.ParseException;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.util.Objects;
@Configuration //标注是配置类
public class QuartzConfigurationOne {
@Bean(name = "detailFactoryBean")
public MethodInvokingJobDetailFactoryBean detailFactoryBean(DemoService demoService){
MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
bean.setTargetObject (demoService);
bean.setTargetMethod ("test");
bean.setConcurrent (false);
return bean;
}
@Bean(name = "cronTriggerBean")
public CronTriggerFactoryBean cronTriggerBean(@Qualifier("detailFactoryBean") MethodInvokingJobDetailFactoryBean detailFactoryBean){
CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean.getObject()));
try {
tigger.setCronexpression("0/5 * * * * ? ");//每5秒执行一次
} catch (ParseException e) {
e.printStackTrace ();
}
return tigger;
}
@Bean
public SchedulerFactoryBean schedulerFactory(@Qualifier("cronTriggerBean") CronTrigger cronTriggerBean){
SchedulerFactoryBean bean = new SchedulerFactoryBean ();
bean.setTriggers(cronTriggerBean);
return bean;
}
}
启动项目查看效果:
package org.jinjin.quartz;
import org.jinjin.service.DemoService;
import org.quartz.CronTrigger;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.expression.ParseException;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.util.Objects;
@Configuration
public class QuartzConfiguration {
@Bean(name = "detailFactoryBean")
public MethodInvokingJobDetailFactoryBean detailFactoryBean(DemoService demoService){
MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
bean.setTargetObject (demoService);
bean.setTargetMethod ("test");
bean.setConcurrent (false);
return bean;
}
@Bean(name = "detailFactoryBean1")
public MethodInvokingJobDetailFactoryBean detailFactoryBean1(DemoService demoService){
MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean ();
bean.setTargetObject (demoService);
bean.setTargetMethod ("test1");
bean.setConcurrent (false);
return bean;
}
@Bean(name = "cronTriggerBean")
public CronTriggerFactoryBean cronTriggerBean(@Qualifier("detailFactoryBean") MethodInvokingJobDetailFactoryBean detailFactoryBean){
CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean.getObject()));
try {
tigger.setCronexpression("0/10 * * * * ? ");//每10秒执行一次
} catch (ParseException e) {
e.printStackTrace ();
}
return tigger;
}
@Bean(name = "cronTriggerBean1")
public CronTriggerFactoryBean cronTriggerBean1(@Qualifier("detailFactoryBean1")MethodInvokingJobDetailFactoryBean detailFactoryBean1){
CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();
tigger.setJobDetail (Objects.requireNonNull(detailFactoryBean1.getObject()));
try {
tigger.setCronexpression("0/5 * * * * ? ");//每10秒执行一次
} catch (ParseException e) {
e.printStackTrace ();
}
return tigger;
}
@Bean
public SchedulerFactoryBean schedulerFactory(@Qualifier("cronTriggerBean") CronTrigger cronTriggerBean, @Qualifier("cronTriggerBean1") CronTrigger cronTriggerBean1){
SchedulerFactoryBean bean = new SchedulerFactoryBean ();
bean.setTriggers(cronTriggerBean,cronTriggerBean1);
return bean;
}
}
启动项目查看效果:



