概述
Spring 的@EnableScheduling
为我们提供了快速的基于多种规则的任务调度功能。在《Spring 4.x Task 和 Schedule 概述》一文中对Spring 实现的异步任务和定时计划作了概要性的介绍,本文将对其实现原理进行解析。
核心原理
@EnableScheduling
要使用Spring
的注解@Scheduled
来快速开启任务调度功能,只需要添加如下配置:
@Configuration
@EnableScheduling
public class ScheduleConfig {
}
@EnableScheduling
注解对应的内容如下:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(SchedulingConfiguration.class)
@Documented
public @interface EnableScheduling {
}
由上可以看到实际上是SchedulingConfiguration.class
类实现了Spring
的任务调度框架级功能。该配置类仅仅是定义了ScheduledAnnotationBeanPostProcessor
的实例。Spring 的调度功能由该实例进行配置。