美文网首页
Java静态代理和动态代理

Java静态代理和动态代理

作者: bluefantasy2017 | 来源:发表于2019-05-29 10:43 被阅读0次

Java静态代理: 其实就是设计模式中的一种; 如下图所示: 

Java静态代理

静态代理的缺点:

Proxy类其实没有实际的内容,它只是实现了相同的接口,所有的请求都是代理到realSubject对象来处理。 如果系统中需要代理的类比较多,会导致系统内的类的数量增多,系统结果比较臃肿和松散。 


Java动态代理:

在Java代码的运行时动态的创建这个proxy对象,当这个proxy对象生命周期结束的时候自动回收。这样就避免了静态代理的大量的冗余类的问题了。 


Java动态代理实现的两种方式: 

1)JDK自带的动态代理方式; 要求被代理的类必须有接口实现; 

这种方式的底层是使用反射来实现的。 

2)使用CGLIB来实现动态代理; 不要求类必须实现接口; 只要方法不是final的就可以; 

cglib的使用还是非常简单的,如下图: 

CGLIB的使用示例

CGLIB的底层是通过ASM字节码操纵工具来实现的。 

常见的字节码操纵工具有:

a)asm : 比较底层,基本上是通过JVM的汇编指令来操作的; 需要对class文件结果比较了解。 

b)javassist : 使用起来比较简单。 

c)BCEL

相关文章

  • 动态代理的两种方式

    静态代理就不说了,基本用到的都是动态代理。 Java中动态代理有JDK动态代理和CGLIB动态代理。 JDK代理的...

  • 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP

    文章目录 Java的静态代理 静态代理的优缺点 ABAP的静态代理 Spring AOP的动态代理 JDK动态代理...

  • java反射和动态代理

    java动态代理Proxy.newProxyInstance 详解java代理机制(静态代理、动态代理)以及使用场景

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • Java动态代理从入门到原理再到实战

    目录 前言 什么是动态代理,和静态代理有什么区别 Java动态代理的简单使用 Java动态代理的原理解读 动态代理...

  • Java基础系列-静态代理和动态代理

    原创文章,转载请标注出处:《Java基础系列-静态代理和动态代理》 1、动态代理(Dynamic Proxy) 代...

  • 代理简记

    Java静态代理 委托类和代理类,实现共同接口 共同接口: 委托类: 代理类: 测试结果: Java动态代理 通过...

  • java的动态代理详解(javassist,cglib)

    俗话说:Coder不知动态代理,走在路上没人理!!!所以本文尝试说明白java代理模式,代理中的静态代理和动态代理...

  • 静态代理、动态代理

    代理分为静态代理和动态代理 按照代理创建的时期,可以分为静态代理和动态代理: (1) 静态代理:由程序员或者...

  • JAVA动态代理的实现方式

    1. 静态代理VS动态代理 代理类可以增强被代理对象的方法。可分为静态代理和动态代理。 1.1 静态代理 静态代理...

网友评论

      本文标题:Java静态代理和动态代理

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