zoukankan      html  css  js  c++  java
  • 004 ProxyFactoryBean

    一 . 概述

      在前一节之中,我们使用ProxyFactory创建了代理对象,后面也提到,spring支持配置式的方式创建代理对象.

      配置的关键就是ProxyFactoryBean.


    二 .ProxyFactoryBean的结构  

    public class ProxyFactoryBean extends ProxyCreatorSupport
            implements FactoryBean<Object>, BeanClassLoaderAware, BeanFactoryAware {

    我们看到这个类实现了FactoryBean接口,那么我们就知道这个实现类是专门用来创建对象的.

    我们将上一节的内容进行配置.

    <!--配置目标对象  -->
        <bean id="realSubject" class="com.trek.factory.RealSubject"></bean>
        <!-- 配置通知对象 -->
        <bean id="advice" class="com.trek.factory.ExecBeforeAdvice"></bean>
        <!-- 配置代理对象 -->
        <bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
            <!-- 代理对象 -->
            <property name="target" ref="realSubject"></property>
            <!-- 声明的接口 -->
            <property name="proxyInterfaces" value="com.trek.factory.Subject"></property>
            <!-- 增强 -->
            <property name="interceptorNames">
                <list>
                    <value>advice</value>
                </list>
            </property>
        </bean>

    测试代码:  

            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("com/trek/factory/spring.xml");
            Subject proxy = (Subject) context.getBean("proxy");
            proxy.exec();

    通过上面的配置,我们省去了编程的方式创建代理对象.

  • 相关阅读:
    Linux 系统中用户切换(su user与 su
    linux 用户打开进程数和文件数调整
    hive sql 语法详解
    iOS
    iOS
    MySQL的事务的处理
    iOS
    iOS AOP编程思想及实践
    iOS 静态库和动态库(库详解)
    iOS 沙盒目录结构及正确使用
  • 原文地址:https://www.cnblogs.com/trekxu/p/9097354.html
Copyright © 2011-2022 走看看