`
sin90lzc
  • 浏览: 157493 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

查看Java动态代理生成的类

阅读更多

声明:非常感谢yy629 提供的帮助。原文:java的动态代理生成了什么?

 

要查看java动态代理生成的源文件,必须先导出字节码文件然后通过反编译(如jad工具)生成源文件。

 

如何导出动态代理生成的类的字节码文件(*.class)呢?

 

只需要在应用中添加下面一段代码:

 

Field field = System.class.getDeclaredField("props");  
field.setAccessible(true);  
Properties props = (Properties) field.get(null);  
props.put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");  

 

当运行该段代码的程序,会在使用了动态代理的类包中生成对应的动态代理类的字节码。

 

结论:动态代理类会自动地添加上toString,hashCode,equals方法,而且这三个方法都会调用InvocationHandler中的invoke方法。这就是为什么在生成的代理类中调用toString,hashCode,equals都会执行invoke的原因。

分享到:
评论

相关推荐

    动态代理及生成的代理类

    动态代理及其生成的代理类,可以反编译查看其类的结构。

    java代理机制 JDK动态代理和cglib代理 详解

    java代理机制 JDK动态代理和cglib代理 详解

    Java动态代理内存中生成的$Proxy0类

    Java动态代理内存中生成的$Proxy0类

    java静态代理和动态代理详解

    动态代理是指在运行时通过反射机制动态生成代理类,无需手动编写代理类。Java中提供了一个java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现动态代理。代理类在运行时会根据被代理接口自动...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    主要介绍了Java爬虫Jsoup+httpclient获取动态生成的数据的相关资料,需要的朋友可以参考下

    webservices代理类自动生成

    项目是eclipse工具生成的,解压后可直接导入到eclipseIDE工具中,在java_web.wsdl文件中写入调用webservices的wsdl内容,然后执行src下的build(ant工具),刷新目录后可在src下看到生成的代理类。 本工程适用与java...

    Java实现动态代理

    详见:https://blog.csdn.net/qq_37651267/article/details/90083914

    简单的java代码生成器

    一个简单的java代码生成器,初学者相对有用

    Java动态代理CGlib Jar包

    CGLIB是一个强大的、高性能的代码生成库。它被广泛使用在基于代理的AOP框架(例如Spring AOP和...EasyMock和jMock作为流行的Java测试库,它们提供Mock对象的方式来支持测试,都使用了CGLIB来对没有接口的类进行代理。

    Java动态代理资源包

    cglib是针对类来实现代理的,原理是对指定的业务类生成一个子类,并覆盖其中业务方法实现代理。因为采用的是继承,所以不能对final修饰的类进行代理

    关于jdk动态代理的源码剖析

    对jdk中的动态代理执行过程进行了详细跟踪,并反编译了动态代理调用自动生成的代理类,并对其进行了详细讲解。

    java jdk 动态代理演示demo2

    java jdk 动态代理演示demo2 包含将生成的字节码保存到本地

    JAVA代码生成工具

    如 ${basepackage}/${className}.java,根据该变量生成输出文件 二. 自动搜索某个目录所有模板文件,无需配置 三.代码生成器模板可以引用的相关变量 1. g.generateByTable("table_name") 方法可以引用的变量 ...

    基于java的企业级应用开发:JDK动态代理.ppt

    * * * * JDK动态代理 JDK动态代理 JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们可以调用Proxy类的newProxyInstance()方法来创建代理对象。对于使用业务接口的类,Spring默认会使用JDK动态代理来实现...

    Spring框架+SpringAOP动态代理

    SpringAOP动态代理 Spring AOP 使用的动态代理主要有两种方式:JDK 动态代理和 CGLIB ...CGLIB(Code Generation Library)是一个代码生成的类库,可以在运行时动态生成一个目标类的子类,并覆盖其中的方法来实现代理。

    cgLib与JDK动态代理的用法

    代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类...

    java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】

    java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】 /** * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用...

    个人用java动态代理模拟实现spring aop

    NULL 博文链接:https://zlx19900228.iteye.com/blog/843289

    CGLIB生成动态代理类

    简约,.java文件。

    java动态代理

    此程序主要说明如何在java文件中动态生成类

Global site tag (gtag.js) - Google Analytics