spirng5源码-springAOP模块

1.spirngAOP模块的组成

spirng5源码-springAOP模块

2.AOP联盟对AOP的定义

AOP技术是与语言无关的一种源码解决方案。具有特定的AOP规范,同时具有特定的组织:AOP联盟;

spirng5源码-springAOP模块

3.springAOP对AOP联盟的支持

spirng5源码-springAOP模块

4.springAOP对AOP联盟标准的实现

spirng5源码-springAOP模块

spirng5源码-springAOP模块

5.springAOP对AOP流程的抽象设计

spirng5源码-springAOP模块

spirng5源码-springAOP模块

spirng5源码-springAOP模块

spirng5源码-springAOP模块

spirng5源码-springAOP模块

spirng5源码-springAOP模块

spirng5源码-springAOP模块

6.springAOP对自动代理的设计与支持

spirng5源码-springAOP模块

  自动代理的实现原理:  通过bean工厂的 Bean后置处理器,达到移花接木的目的。 即将原来的实例化对象,通过bean后置处理器机制,替换为代理对象。这个过程,较为复杂,具体可以参考源码实现。

7.***对springAOP顶级抽象间关系的理解

spirng5源码-springAOP模块

8.注释

  • 在spring的整个AOP流程中,除了上图中提及的关键抽象类,还包括这些核心类:  
    1. AopProxy,对代理对象的抽象,使得完美兼容aspectJ 与 jdk的动态代理;
    2. ProxyFactoryBean,一个工厂bean,通过spring的工厂机制,完成编织;
    3. ProxyFactory,提供编码的方式,完成aop的手动编织(使用较少);
  • aop的自动代理有多种不同的实现途径,它们具有优先级关系,优先级最高的将会替换优先级低的自动代理生成器。同时,优先级高的将会兼容优先级低的生成器。