1、首先引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
2、创建定时任务执行的逻辑类
import org.springframework.stereotype.Component;
@Component
public class SyncUserJob {
//逻辑执行方法
protected void executeInternal() {
System.out.println("定时执行+++++++++++++++++++123");
}
}
```java
在这里插入代码片
3、创建quartz中的工具类
@Configuration
public class QuartzConfig {
private ApplicationContext applicationContext;
//创建jobdatil对象
@Bean
public MethodInvokingJobDetailFactoryBean testJobDetail(SyncUserJob userJob){
return createJobDetail(userJob,"executeInternal");
}
//创建trigger
@Bean
public CronTriggerFactoryBean TestJobTrigger(JobDetail testJobDetail) {
//CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/2 * * * * ?");
return createTrigger(testJobDetail,"0/2 * * * * ?");
}
//快捷创建jobdatil
public MethodInvokingJobDetailFactoryBean createJobDetail(Object object, String detailName) {
MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
jobDetail.setTargetObject(object);//设置目标对象
jobDetail.setTargetMethod(detailName);//设置执行方法名称
jobDetail.setConcurrent(false);//防止并发
return jobDetail;
}
//快捷创建trigger
public CronTriggerFactoryBean createTrigger(JobDetail jobDetail, String detailName) {
CronTriggerFactoryBean conTrigger = new CronTriggerFactoryBean();
conTrigger.setJobDetail(jobDetail);//设置任务详情
conTrigger.setCronExpression(detailName);//设置时间
return conTrigger;
}
//手动执行指定的定时任务中传入jobdatilId为创建jobdatil的方法名称如testJobDetail()方法
public void invokeJobDetail(String jobdatilId) throws InvocationTargetException, IllegalAccessException {
MethodInvoker methodInvoker= (MethodInvoker)applicationContext.getBean("&"+jobdatilId);
if (methodInvoker!=null){
methodInvoker.invoke();
}
}
}
4、启动项目会出现以下结果