最近工作上接到了一个定时相关的需求,通过分析发现,需求比较简单,并不需要任务持久化,也不需要定时任务的复杂操作。
所以对比之下,选用了spring-context模块里包含的scheduling功能。
令人兴奋的是!基于spring-boot的自动配置,选用相关两个注解便把我从定时调度功能解脱出来,专心于业务功能的开发了。
像这样:
- 首先在启动类或者配置类上,启用spring的定时调度,添加注解@EnableScheduling
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* Created by lujiu on 2018/11/25.
*/
@EnableScheduling
@SpringBootApplication
public class TransApplication {
public static void main(String[] args) {
SpringApplication.run(TransApplication.class, args);
}
}
- 然后,在业务功能上使用@Scheduled,即可很方便的把所修饰的业务功能与一对应的触发器捆绑注册到spring的调度任务列表中(spring会根据调度任务类型的不同,分别添加到不同的列表中,以方便任务的触发执行)
源码属性部分
public class ScheduledTaskRegistrar implements InitializingBean, DisposableBean {
private TaskScheduler task