第一种使用spring3.0+自带的定时任务
第一步:开启定时任务
@SpringBootApplication //开启定时任务 @EnableScheduling public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
第二步:定时任务类
package com.JobScheduled;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author xulei
* @version 1.0
* @date 2020/4/28 13:35
*/
@Component
public class FirstScheduled {
@Scheduled(cron = "0/5 * * * * ?")
//或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000)
public void runFirstScheduled(){
System.out.println("定时器任务五秒执行一次————————————————"+ new Date());
}
}
第二种方法:使用Quartz开源项目
首先引入坐标
<!--定时器依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
第一步:同上
第二步:配置类并配置定时任务
package com.config; /** * @author xulei * @version 1.0 * @date 2020/4/28 14:16 */ import com.JobScheduled.QuartzDemo; import org.quartz.SimpleTrigger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.quartz.JobDetailFactoryBean; import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean; /** * Quartz配置类 */ @Configuration public class QuartzConfig { // 1.创建Job对象 @Bean public JobDetailFactoryBean jobDetailFactoryBean() { JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); // 关联自己的类 factoryBean.setJobClass(QuartzDemo.class); return factoryBean; } // 2.创建Trigger对象(简易版) @Bean public SimpleTriggerFactoryBean simpleTriggerFactoryBean( JobDetailFactoryBean jobDetailFactoryBean) { SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); // 关联jobDetail对象 factoryBean.setJobDetail(jobDetailFactoryBean.getObject()); // 该参数表示一个执行的毫秒数 factoryBean.setRepeatInterval(2000); // 设置重复次数 factoryBean.setRepeatCount(5); return factoryBean; } // 3.创建Scheduler对象 @Bean public SchedulerFactoryBean schedulerFactoryBean(SimpleTriggerFactoryBean simpleTriggerFactoryBean){ SchedulerFactoryBean factoryBean = new SchedulerFactoryBean(); factoryBean.setTriggers(simpleTriggerFactoryBean.getObject()); return factoryBean; } }
第三步:定时任务类
package com.JobScheduled; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * @author xulei * @version 1.0 * @date 2020/4/28 14:15 */ /** * Job类 */ public class QuartzDemo implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Quartz定时任务"); } }