`
wangjianjun852
  • 浏览: 49852 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

proxy--预备知识

阅读更多
首先根据java的多态实现---为car 实现一个log 记录和 方法运行时间记录
public interface Moveable {
void move();
}


做为所以类的父接口



public class Car implements Moveable {

@Override
public void move() {
try {
Thread.sleep(new Random().nextInt(10000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}


这时只要在用一个类 implements  Moveable
然后在new 的时候传一个car 的实例,直接调用  car 的move方法就可以了。

public class CarLogProxy implements Moveable {

Moveable car = null;


public CarLogProxy(Moveable car) {
super();
this.car = car;
}


@Override
public void move() {
System.out.println("car starting.....");
car.move();
System.out.println("car stoping.....");
}

}

这样就实现了一个logProxy


下面还要实现一个TimeProxy,实现大体方法跟上面Log方法雷同

public class CarTimeProxy implements Moveable {

Moveable car = null;


public CarTimeProxy(Moveable car) {
super();
this.car = car;
}


@Override
public void move() {
long startTime = System.currentTimeMillis();
car.move();
long endTime = System.currentTimeMillis();
System.out.println("moive time is " + (endTime-startTime));
}

}


这时只要建一个客户端测试就可以了

Moveable car = new Car();
Moveable carTimeProxy = new CarTimeProxy(car);
Moveable carLogProxy = new CarLogProxy(carTimeProxy);
carLogProxy.move();


这样就可以在运行car 之前,进行time 和log 记录了。。

但是这样的代理不足之处太多了。。 比如,要想把Time log 记录位置换一下。
如果需求多的话,这样的根本满足不了。。。 所以还得进一步改善。。


----------------------------------


这只是大家对动态代理的一个入门,稍后我一步步将spring 如何实现aop  代理的。介绍给大家。。


分享到:
评论

相关推荐

    Weblogic9.2集群配置

    1. 预备知识 - **Domain**:在 WebLogic 中,Domain 是最基本的管理单位,它包含了多个 WebLogic Server 实例、应用程序、网络配置等资源。一个 Domain 至少包含一个 Administrator Server(管理服务器),负责管理...

    WebLogic_Server_11g_节点服务器配置单机版.pdf

    #### 二、预备知识 在深入讨论配置步骤之前,需要确保具备以下基础知识: - **WebLogic Server** 的基本概念及安装方法。 - **集群** 和 **节点管理器** 的基本原理。 - **操作系统** 的基本操作知识,尤其是...

    Weblogic10.3+集群配置手册

    #### 一、预备知识 - **Domain 和 Server 定义**: - **Domain**:是 WebLogic Server 实例的基本管理单元,它由一个被配置为 Administrator Server 的 WebLogic Server 实例管理,包括所有相关资源的集合。 - **...

    jQuery_EasyUI教程.doc

    #### 概述与预备知识 jQuery EasyUI 是一个基于 jQuery 的 UI 插件集合,旨在简化 Web 开发过程,让开发者能够轻松地创建丰富的用户界面。它提供了大量预定义的组件,如对话框、菜单、数据网格等,以及强大的拖放...

    Weblogic+10+cluster+V+1.0.pdf

    根据提供的文档信息,本文将详细解析《Weblogic10集群配置手册V1.0》中的关键知识点,主要包括预备知识、本文环境以及配置WebLogic Server集群的相关内容。 ### 一、预备知识 #### 1.1 Domain 和 Server - **...

    WebLogic Server 9.2 集群配置多服务器版.doc

    #### 二、预备知识 - **Domain**:WebLogic Server实例的基本管理单元,它包含了所有相关资源的集合。 - **Server**:为了实现特定功能而存在的逻辑单元。在一个Domain中可以包含一个或多个WebLogic Server实例,...

    nvivo教程1.pdf

    - 存储离线材料的编码引用:使用代理文档(proxy documents)存储对离线材料的编码引用。 - 查看文档编码:浏览已编码的文本。 4. 链接(Linking): - 创建文档备忘录:为文档创建备注。 - 创建并访问节点备忘...

    Weblogic+10[1].3+集群配置手册

    #### 一、预备知识 **1.1 何为 Domain 和 Server** - **Domain**: 在WebLogic Server环境中,Domain被视为基本管理单元。它是由被配置为管理员Server的一个或多个WebLogic Server实例组成的逻辑集合。这些实例共同...

    Weblogic10.3 集群配置手册

    #### 一、预备知识 **1.1 何为 Domain 和 Server** - **Domain**:WebLogic Server 的基本管理单元,一个 Domain 包含了一个或多个 WebLogic Server 实例,其中至少包含一个管理服务器 (Administration Server) 和...

    weblogic集群(适用于WebLogic Server 9.2)

    ### 预备知识:Domain 和 Server **Domain** 是 WebLogic Server 的基本管理单元,它由一个或多个服务器实例组成,其中至少有一个作为 Administrator Server,负责管理整个 Domain 内的资源和配置。Domain 包含了...

    支持属性和代理重加密的区块链数据共享方案.docx

    预备知识部分介绍了数学背景,涉及大素数p、乘法循环群G1和GT,以及生成元g,这些都是构建加密方案的基础。 综上所述,该文档提出的方案通过结合属性加密、代理重加密和区块链技术,旨在创建一个既安全又高效的医疗...

    论文研究-一个基于身份的多代理多签密方案.pdf

    在预备知识中提到的循环群G1和G2的阶为素数q,这是指群中的元素数量,同时双线性对e:G1´G1®G2定义在这些群上,它满足双线性性、非退化性和可计算性。这些性质为设计安全的密码方案提供了理论基础。 现有的文献中...

    weblogic集群服务器

    #### 二、预备知识 - **Domain**:在 WebLogic Server 中,Domain 是最基本的管理单位,包含了多个 WebLogic Server 实例及相关资源的集合。一个 Domain 至少包含一个管理服务器(Administrator Server),该服务器...

Global site tag (gtag.js) - Google Analytics