欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > springboot-定时任务源码分析

springboot-定时任务源码分析

2024/11/30 12:31:34 来源:https://blog.csdn.net/vistaed/article/details/140626789  浏览:    关键词:springboot-定时任务源码分析

springboot-定时任务源码分析

前言我们都知道开启 springboot的定时任务需要先使用 @EnableScheduling 注解,在可以开启,那么 @EnableScheduling 就是定时任务的源头,所以先从 @EnableScheduling 开始分析

@EnableScheduling

这个注解核心就是用于控制是否注入 SchedulingConfiguration 具体可以了解下 @Import() 注解,为什么使用这个注解就可以,本质上是一个开关,开了就拥有,删除就没用…

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(SchedulingConfiguration.class)
@Documented
public @interface EnableScheduling {}

SchedulingConfiguration

@Configuration
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public class SchedulingConfiguration {@Bean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)@Role(BeanDefinition.ROLE_INFRASTRUCTURE)public ScheduledAnnotationBeanPostProcessor scheduledAnnotationProcessor() {return new ScheduledAnnotationBeanPostProcessor();}}

ScheduledAnnotationBeanPostProcessor

定时任务注解的 BeanPostProcessor,主要是用于Spring容器在创建bean的过程中,能够使用我们自己定义的逻辑,对创建的bean做一些处理,或者执行一些业务,
可以说 Scheduled 的初始化等动作都是当前类在做…

public class ScheduledAnnotationBeanPostProcessorimplements ScheduledTaskHolder, MergedBeanDefinitionPostProcessor, DestructionAwareBeanPostProcessor,Ordered, EmbeddedValueResolverAware, BeanNameAware, BeanFactoryAware, ApplicationContextAware,SmartInitializingSingleton, ApplicationListener<ContextRefreshedEvent>, DisposableBean {
// 内容太多了,拆解分析
}

主要会通过实现类,在 Bean 在执行的过程中,各种回调, 比如实现了 BeanPostProcessor 在初始化的时候

在这里插入图片描述
而 ScheduledAnnotationBeanPostProcessor 实现了,估也会被执行…

暂定

来活了…

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com