- 开发人员使用注解
@EnableAsync; - 注解
@EnableAsync导入AsyncConfigurationSelector; AsyncConfigurationSelector根据注解@EnableAsync属性AdviceMode mode决定引入ProxyAsyncConfiguration/AspectJAsyncConfiguration;这里以
ProxyAsyncConfiguration为例ProxyAsyncConfiguration定义基础设施bean,实现类为AsyncAnnotationBeanPostProcessor,名称为org.springframework.context.annotation.internalAsyncAnnotationProcessor;该
bean名称定义为TaskManagementConfigUtils.ASYNC_ANNOTATION_PROCESSOR_BEAN_NAMEbean AsyncAnnotationBeanPostProcessor拥有一个AsyncAnnotationAdvisor,这是一个Spring Advisor,会被包裹到方法或者bean级别使用了注解@Async或EJB 3.1 javax.ejb.Asynchronous注解的bean上;bean AsyncAnnotationBeanPostProcessor在容器启动时对每个bean的初始化进行后置处理,如果该bean的某个方法或者bean级别使用了注解@Async或EJB 3.1 javax.ejb.Asynchronous注解,则将自己所拥有的AsyncAnnotationAdvisor包裹到目标bean的最外面;如果需要为目标
bean创建代理,则创建相应的代理对象。bean AsyncAnnotationBeanPostProcessor所持AsyncAnnotationAdvisor对象最重要的是其包装在目标bean外面的Advice AnnotationAsyncExecutionInterceptor。当使用者调用相应bean上的异步方法时,其实调用先到达代理对象,然后经过该AnnotationAsyncExecutionInterceptor,而该AnnotationAsyncExecutionInterceptor会使用异步机制调用目标bean对象上使用者指定要调用的方法。
Spring : @EnableAsync 的工作原理
最新推荐文章于 2025-09-21 10:17:15 发布
博客介绍了开发人员使用注解的情况,包括注解导入,根据注解属性决定引入。定义基础设施及实现类,在容器启动时对初始化进行后置处理,若方法或级别使用特定注解,会将对象包裹到目标外。还提及为目标创建代理及异步调用机制。

6373

被折叠的 条评论
为什么被折叠?



