Spring版本:
<version>5.2.1.RELEASE</version>
上一篇:22-Spring源码解析之AOP(1)——@EnableAspectJAutoProxy注解原理
上一篇我们完成了@EnableAspectJAutoProxy
注解的解析,@EnableAspectJAutoProxy
注解就解析完成,解析的结果就是:将AnnotationAwareAspectJAutoProxyCreator
类转换为BeanDefintion
并将其存储到beanFactory
中。
上篇遗留了4个问题,本篇就带着这4个问题开始分析。是哪四个问题来着?忘记了不要紧,我再贴一下:
- 【问题一】为什么在配置类中写了
@EnableAspectJAutoProxy
注解,Spring
就为我们在容器中注册了一个AnnotationAwareAspectJAutoProxyCreator
类的BeanDefinition
- 【问题二】
AnnotationAwareAspectJAutoProxyCreator
类是什么,它的类结构是什么样子的 - 【问题三】
BeanDefinition
只是Bean
的定义信息,什么时候创建AnnotationAwareAspectJAutoProxyCreator
类 - 【问题四】实现
AOP
功能与AnnotationAwareAspectJAutoProxyCreator
类有什么关系
【问题一】暂时还没有办法回答,当AOP
的功能都讲解完,这个问题自然就有了答案。因此,我们开始从【问题二】来一个一个回答。
一、AnnotationAwareAspectJAutoProxyCreator
类结构
想要了解一个类,那么我们首先应该看看它的父类、接口的信息。下面给出AnnotationAwareAspectJAutoProxyCreator
类的类结构图。
public class AnnotationAwareAspectJAutoProxyCreator extends AspectJAwareAdvisorAutoProxyCreator
public class AspectJAwareAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCreator
public abstract class AbstractAdvisorAutoProxyCreator extends<