Spring AOP 易混概念的区别和联系

本文主要区分易混概念,介绍了AOP代理机制对象创建工厂,它根据配置决定使用的AOP代理机制及生成的对象类型,框架为相关接口内置多个实现类。还阐述了代理对象创建工厂为应用组件创建代理对象的方式,包括程序化和声明式,涉及多个框架内置工具类。

本文主要区分如下易混概念: AopProxyFactory,AopProxy,ProxyFactory,ProxyFactoryBean

  • AOP代理机制对象创建工厂 : 根据配置决定使用哪种AOP代理机制 : JDK Dynamic AOP Proxy 还是 CGLib AOP Proxy

    • AopProxyFactory 接口
      • DefaultAopProxyFactory
      1. Spring AOP框架设计AopProxyFactory用于生成AopProxy,
      2. DefaultAopProxyFactorySpring AOP框架内置的AopProxyFactory实现。
      3. DefaultAopProxyFactory根据配置决定生成的AopProxy对象类型为CglibAopProxy还是JdkDynamicAopProxy;
    • AopProxy 接口
      • ObjenesisCglibAopProxy/CglibAopProxy
      • JdkDynamicAopProxy
      1. Spring AOP框架设计接口AopProxy用于表示框架使用的某种AOP代理机制,指的是 JDK Dynamic AOP Proxy 还是 CGLib AOP Proxy ;
      2. Spring AOP框架为接口AopProxy内置提供3个实现类ObjenesisCglibAopProxy,CglibAopProxy ,JdkDynamicAopProxy;
      3. 实现类ObjenesisCglibAopProxy,CglibAopProxy 使用Cglib AOP Proxy 机制生成应用bean的代理对象;
        ObjenesisCglibAopProxy 继承自CglibAopProxy;
      4. 实现类JdkDynamicAopProxy 使用JDK Dynamic AOP Proxy 机制生成应用bean的代理对象;
      5. 一个AopProxy对象(实际上为ObjenesisCglibAopProxy,CglibAopProxy ,JdkDynamicAopProxy对象),会被ProxyFactory/ProxyFactoryBean用于创建应用bean的代理对象;
  • 代理对象创建工厂 : 为应用组件bean创建代理对象

    • ProxyFactory

      程序化方式生成应用bean的代理对象:调用者编码方式创建有关对象和关联有关对象。

    • ProxyFactoryBean

      FactoryBean方式生成应用bean的代理对象:调用者声明beanClassProxyFactoryBeanbean定义,设定需要使用的MethodInterceptor,Advisor bean的名称,以及其他属性,然后bean使用方获取该bean时,容器就会自动创建一个bean代理对象给使用者。

    1. ProxyFactory /ProxyFactoryBean 这两个类都是Spring AOP框架内置的用于生成应用bean的代理对象的工具类;
    2. ProxyFactory /ProxyFactoryBean 这两个类这两个类都继承自ProxyCreatorSupport;
    3. ProxyCreatorSupport类在默认构造函数中指定使用的AopProxyFactory对象实现类为DefaultAopProxyFactory;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值