1. 程式人生 > >Spring @EnableScheduling 註解解析

Spring @EnableScheduling 註解解析

概述

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 的排程功能由該例項進行配置。