美文网首页
Spring源码解析(九)-建立AopProxy代理对象

Spring源码解析(九)-建立AopProxy代理对象

作者: Jerry_dong | 来源:发表于2017-11-30 15:45 被阅读0次

    在Spring的AOP模块中,一个主要部分是代理对象的生成。而对于Spring应用,可以看到是通过配置和调用Spring的ProxyFactoryBean来完成的。在ProxyFactoryBean中,又封装了主要代理对象的生成过程。而代理对象的生成,使用了JDK的Proxy和CGLIB两种方式。

    1.AopProxy类结构体系

    AopProxy结构体系.png

    2.ProxyFactory类结构体系

    ProxyConfig结构体系.png

    3.ProxyFactoryBean

    因为ProxxyFactoryBean是在Spring IOC环境中创建AOP应用的底层方法,也是最灵活的方法。所以我们以ProxyFactoryBean为入口,逐层深入,理解AOP实现
    1.配置ProxyFactoryBean

        <!--通知器,通知器的实现定义了需要对目标对象进行的增强的切面行为 -->
        <bean id=”testAdvisor” class=”com.test.TestAdvisor” />
        <!--AOP代理,封装AOP功能的主要类 -->
        <bean id=”testAOP” class=”org.springframework.aop.ProxyFactoryBean”>
            <!--AOP代理接口 -->
            <property name=”proxyInterfaces”>
                <value>com.test.TestProxyInterface</value>
            </property>
            <!--需要使用AOP切面增强的对象 -->
            <property name=”target”>
                <bean class=”com.test.TestTarget” />
            </property>
            <!--interceptorNames属性的值往往设置为需要定义的通知器 -->
            <property name=”interceptorNames”>
                <list>
                    <value>testAdvisor</value>
                </list>
            </property>
        </bean>
    

    2.AopProxy的生成时序图
    从FactoryBean中获取对象,是以getObject()方法作为入口完成的;ProxyFactoryBean实现中的getObject方法,是FactoryBean需要实现的接口

    AopProxy生成时序图.png

    下面一节我们将详细解析时序图中生成AopProxy的方法

    相关文章

      网友评论

          本文标题:Spring源码解析(九)-建立AopProxy代理对象

          本文链接:https://www.haomeiwen.com/subject/foambxtx.html