Spring @EnableScheduling 註解解析
阿新 • • 發佈:2019-01-27
概述
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 的排程功能由該例項進行配置。