Spring AOP 源码探索 之 AOP核心类的注册及执行时机分析

本文深入探讨Spring AOP的启用和核心类,特别是AspectJAutoProxyRegistrar如何在IOC中注册AnnotationAwareAspectAutoProxyCreator。分析了AbstractAutoProxyCreator的postProcessBeforeInstantiation和postProcessAfterInitialization方法的执行时机和作用,以及它们在Bean实例化和初始化过程中的角色。此外,还介绍了相关学习路径,包括JAVA资深架构师的成长路线。
摘要由CSDN通过智能技术生成

EnableAspectJAutoProxy 开启AOP

开启AOP功能可用注解形式开启:
@EnableAspectJAutoProxy
看下@EnableAspectJAutoProxy注解的作用
在这里插入图片描述
由上图源码可知,EnableAspectJAutoProxy注解导入了AspectJAutoProxyRegist类。

AspectJAutoProxyRegistrar类分析

分析下AspectJAutoProxyRegist类的作用。
AspectJAutoProxyRegist类继承了ImportBeanDefinitionRegistrar。

class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar

会在spring ioc 扫描类定义的过程中调用里面的registerBeanDfinitions方法。
在这里插入图片描述
然后通过AopConfigUtils工具类在IOC容器中注册了AnnotationAwareAspectAutoProxyCreator类
在这里插入图片描述

AOP核心类分析

AnnotationAwareAspectAutoProxyCreator

以下是AnnotationAwareAspectAutoProxyCreator类的继承关系类图
在这里插入图片描述
根据以上类图,分析后得到如下图
在这里插入图片描述
根居上面的类图可知,AnnotationAwareAspectAutoProxyCreator的父类AbstractAutoProxyCreator实现了其中的InstantiationAwareBeanPostProcessor接口方法postProcessBeforeInstantiationpostProcessAfterInitialization

AbstractAutoProxyCreator

postProcessBeforeInstantiation方法
执行时机

postProcessBeforeInstantiation方法会在IOC容器实例化Bean的过程中,创建Bean之前调用。
调用处:
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
#resolveBeforeInstantiation
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值