美文网首页
静态代理、动态代理和CGLIB代理

静态代理、动态代理和CGLIB代理

作者: 天羽天 | 来源:发表于2019-01-22 01:09 被阅读0次

一、介绍

代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。

代理模式UML类图

根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。

静态代理即为JDK原生静态代理。

而动态代理方式又可以分为两种:

1. JDK原生动态代理

2. CGLIB动态代理。

静态代理的对象在编译时生成,而动态代理的对象只在程序运行时生成,因此静态代理的类会产生对应的字节码文件,动态代理则不然。

二、静态代理

这种代理方式需要代理对象和目标对象实现一样的接口。

优点:

可以在不修改目标对象的前提下扩展目标对象的功能。

缺点:

1. 冗余。会产生过多的代理类。

2. 不易维护。随着接口增加方法,目标对象与代理对象都要进行相应修改。

// 接口interfaceHello{

    StringsayHello(String str);

}// 实现classHelloImpimplementsHello{

    @Override    publicStringsayHello(String str){

        return "HelloImp: " + str;

    }

}

相关文章

  • 编程常用的设计模式

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

  • java代理笔记:静态代理、JDK动态代理、CGlib动态代理

    1.静态代理 JDK动态代理 CGlib动态代理

  • 设计模式之代理模式

    代理分为静态代理和动态代理。 动态代理又包括基于JDK的动态代理、基于CGlib 的动态代理、基于Aspectj实...

  • Java高级主题(五)——动态代理

    代理可以分为静态代理、动态代理,动态代理又可以分为 jvm的动态代理 和 cglib的动态代理。像spring框架...

  • 设计模式~代理模式

    学习代理模式内容: ★ 静态代理、 ★ 动态代理(JDK动态代理、CGLIB动态代理)、 ★ 拦截器的原理和日志记...

  • 动态代理的两种方式

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

  • Spring AOP中的动态代理

    Spring AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理: (3)静态代理与动态代理区别...

  • 2018-10-03

    Spring aop 是通过代理实现的,代理有静态代理,jdk动态代理和cglib动态代理,代理就像我们生活中的房...

  • 代理模式

    代理模式主要分为:静态代理,动态代理(JDK代理,接口代理)和Cglib代理(在内存中动态创建对象,不需要实现接口...

  • java代理(proxy)

    静态代理 JDK 动态代理 CGLib 动态代理1)引入maven依赖 2)代码实现

网友评论

      本文标题:静态代理、动态代理和CGLIB代理

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