定时任务在企业级开发中是一个非常常见的功能,springboot对quartz做了进一步的封装,使得在使用上变得更加简单了,本小节来做一个学习
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
@Component
public class DiscountJob {
public void execute() {
System.out.println("更新数据库中商品价格,统一打5折");
}
}
@Configuration
public class QuartzConfig {
/**
* 配置JobDetail工厂组件,生成的JobDetail指向discountJob的execute()方法
*/
@Bean
MethodInvokingJobDetailFactoryBean jobFactoryBean() {
MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean();
bean.setTargetBeanName("discountJob");
bean.setTargetMethod("execute");
return bean;
}
/**
* 触发器工厂
*/
@Bean
CronTriggerFactoryBean cronTrigger() {
CronTriggerFactoryBean bean = new CronTriggerFactoryBean();
// Corn表达式设定执行时间规则
bean.setCronExpression("00 10 14 ? * *");
// 执行JobDetail
bean.setJobDetail(jobFactoryBean().getObject());
return bean;
}
}
注解方式 @EnableScheduling // 开启定时任务
配置文件的方式
待续........