Quartz组件
1.Quartz的介绍
官网:http://www.quartz-scheduler.org/
2.Quartz框架的使用思路
- job - 任务 - 你要做什么事?
- Trigger - 触发器 - 你什么时候去做?
- Scheduler - 任务调度 - 你什么时候需要去做什么事?
3.SpringBoot整合Quartz框架
3.1添加Quartz依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
3.2自定义一个job
@Component
public class QuartzDemo{
@Override
public void printTime() throws JobExecutionException {
System.out.println("现在时刻:"+new Date());
}
}
3.3编写quartz配置类
@Configuration
public class QuartzConfig {
@Bean//job:干什么事
public MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean(
QuartzDemo quartzDemo){
MethodInvokingJobDetailFactoryBean JobDetailFactoryBean = new
MethodInvokingJobDetailFactoryBean();
JobDetailFactoryBean.setTargetObject(clearImgJob);
JobDetailFactoryBean.setTargetMethod("printTime");
return JobDetailFactoryBean;
}
@Bean//trigger:什么时候
public CronTriggerFactoryBean cronTriggerFactoryBean(
MethodInvokingJobDetailFactoryBean JobDetailFactoryBean){
CronTriggerFactoryBean triggerFactoryBean = new CronTriggerFactoryBean();
triggerFactoryBean.setCronExpression("0/1 * * * * ?");
triggerFactoryBean.setJobDetail(JobDetailFactoryBean.getObject());
return triggerFactoryBean;
}
@Bean//scheduler:什么时候干什么事
public SchedulerFactoryBean schedulerFactoryBean(
CronTriggerFactoryBean triggerFactoryBean){
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setTriggers(triggerFactoryBean.getObject());
return schedulerFactoryBean;
}
}
3.4编写启动类
@SpringBootApplication
public class QuartzTestApp {
public static void main(String[] args) {
SpringApplication.run(QuartzTestApp.class,args);
}
}
3.5测试
此时跑起来就可以看见控制台在输出 现在的时间