0 0

关于jdk动态代理和cglib的代理不同点的疑问0

我主要的问题是CGLIB是生成了目标对象的子类,那是将代理对象重新复写了一遍吗,那这样的话,最终调用的是目标对象还是代理对象呢。
2014年8月28日 10:25

2个答案 按时间排序 按投票排序

0 0

采纳的答案

共同点:都会生成一个新的类.调用的当然都是,新生成的类.然后由新生成的类调用目标类,这才是代理模式.



不同点:如果是Cglib代理Class,那么就是继承这个Class. 如果是动态代理,那么继承的就是Object,并且实现你所指定的接口.


如果答案对你有帮助,请采纳.

2014年8月29日 13:02
0 0

CGLIB是动态生成字节码,继承了你的目标类,返回一个子类给你。 你调用的话当让是代理类了。

2014年8月28日 11:37

相关推荐

    AOP之JDK动态代理和CGLib动态代理

    Spring框架是AOP实现的一个典范,它提供了两种主要的动态代理方式:JDK动态代理和CGLib动态代理。 **JDK动态代理**: JDK动态代理基于Java的反射API实现,适用于接口代理。当目标对象实现了至少一个接口时,Spring...

    CGlib.jar动态代理资源包

    在实际项目中,选择使用CGLib还是JDK动态代理,应根据具体需求和场景来决定。例如,如果目标类实现了多个接口,那么JDK动态代理可能是更好的选择;而如果没有接口,或者需要更高效的代理,CGLib则更为合适。 总的来...

    Cglib3.3.0最新版jar包

    Cglib就是一种实现动态代理的方式,不同于JDK自带的Proxy,Cglib不需要目标对象实现任何接口,因此可以用于不能实现接口的对象。通过Enhancer类,我们可以指定需要代理的目标类,并提供回调方法实现动态代理逻辑。 ...

    Spring学习笔记(13)----动态代理模式分析演示

    Java中提供了两种主要的实现方式:JDK动态代理和CGLIB动态代理。 1. JDK动态代理:基于接口实现,要求被代理的对象必须实现至少一个接口。Java的Proxy类和InvocationHandler接口是实现JDK动态代理的关键。Proxy类...

    SPRING对动态代理的封装

    总结一下,Spring对动态代理的封装主要体现在AOP框架的设计上,它通过JDK动态代理和CGLIB实现了对目标对象的透明代理,方便地实现了面向切面编程。开发者可以通过配置XML或注解定义切面,使用通知来扩展或改变目标...

    spring代理实现

    在这个资源中,我们可能会看到三种不同的代理方式:JDK动态代理、CGLIB代理以及Spring AOP的实现。 1. JDK动态代理: JDK动态代理基于Java反射API实现,主要用于接口代理。当目标对象实现了至少一个接口时,我们...

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    Spring AOP支持不同的代理策略,包括JDK动态代理和CGLIB代理。如果被代理的类没有实现接口,Spring AOP会采用CGLIB来生成代理对象。CGLIB(Code Generation Library)是一个开源的代码生成库,它允许运行时在内存中...

    cglib所有jar包

    Java标准库提供了两种方式来实现动态代理:JDK的java.lang.reflect.Proxy和第三方库如CGlib。JDK的Proxy类依赖于接口,只能为实现了特定接口的类生成代理,而CGlib则无需接口,通过生成目标类的子类来实现代理,因此...

    SpringAOP之探秘(动态代理、责任链模式、注解使用)

    在Java中,有两种主要的动态代理实现方式:JDK动态代理和CGLIB。JDK动态代理基于接口,当目标类实现了至少一个接口时,Java会生成一个代理类来执行增强的代码。而CGLIB则是在运行时通过字节码技术生成一个子类,用于...

    Spring框架+SpringAOP动态代理

    Spring AOP 使用两种主要的动态代理技术来实现面向切面编程:JDK动态代理和CGLIB代理。 ##### 1. JDK 动态代理 JDK动态代理主要用于代理那些已经实现了接口的类。Spring内部通过`java.lang.reflect.Proxy`类来创建...

    AOP-CGLIB学习-实现简单的注解权限系统

    Spring框架提供了一种实现AOP的方式,它支持基于代理的AOP实现,包括JDK动态代理和CGLIB代理。当目标对象不实现接口时,Spring会使用CGLIB来创建代理对象。 CGLIB(Code Generation Library)是一个代码生成库,它...

    JAVA的反射机制与动态代理.pdf

    JDK动态代理主要涉及到以下几个核心类和接口: - **`java.lang.reflect.Proxy`**:提供创建动态代理类和实例的方法。 - **`java.lang.reflect.InvocationHandler`**:接口,需要实现`invoke(Object proxy, Method ...

    jdk机制实现面向切面编程

    - 对于不基于接口的类或者需要静态代理的情况,JDK动态代理可能无法满足需求,此时可以考虑使用CGLIB或其他第三方AOP框架。 总的来说,JDK动态代理机制提供了一种轻量级的面向切面编程实现方式,它无需额外的框架...

    Java动态代理(Spring Aop原理)

    Spring支持两种类型的代理:JDK动态代理和CGLIB代理。 - JDK动态代理适用于目标对象实现了至少一个接口的情况,Spring会创建对应接口的代理对象。 - 如果目标对象没有实现接口,Spring将使用CGLIB库创建子类代理。...

    Spring3注解

    AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于...而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。

    Spring AOP里的静态代理和动态代理用法详解

    Spring AOP里的静态代理和动态代理用法详解是关于 Spring AOP里的静态代理和动态代理的详细介绍。代理是一种设计模式,通过创建一个代理对象来控制对委托类对象的直接访问,隐藏和保护委托类对象,同时也为实施不同...

    spring第五天 .pdf

    在Java中,有两种主要的动态代理方式:JDK动态代理和CGLib代理。 1. **JDK动态代理**: - JDK动态代理基于Java的接口实现。当目标对象实现了至少一个接口时,JDK动态代理会创建一个实现了相同接口的代理类。代理类...

    spring aop 源码解析

    Spring AOP的实现主要基于两种代理:JDK动态代理和CGLIB代理。JDK动态代理适用于实现了接口的类,它通过反射创建一个代理类来实现接口,并在接口方法调用前后插入通知。CGLIB代理则是在运行时生成目标类的子类,从而...

    spring代理实现项目

    Spring代理的实现分为两种:JDK动态代理和CGLIB代理。JDK代理适用于目标对象实现了接口的情况,而CGLIB代理则适用于未实现接口的类。Spring会根据目标对象是否实现接口选择合适的代理方式。在项目源代码中,我们可能...

Global site tag (gtag.js) - Google Analytics