网上讲了好多种方法,但经过测试,都不太中意,下面结合自己的实践给大家介绍一下JDK动态代理文件如何生成和查看

背景条件

idea中JDK动态代理文件的生成和查看

demo介绍

JDK动态代理文件的生成有两个条件:

1、必须在main方法中执行,直接用junit的test方法调用无法生成

2、在main方法最前面增加System.getProperties().put(“sun.misc.ProxyGenerator.saveGeneratedFiles”,“true”); 配置,这样会输出代理class文件(新版本JDK做了更改,更改为:System.getProperties().put(“jdk.proxy.ProxyGenerator.saveGeneratedFiles”, “true”);)

JDK动态代理文件$Proxy0.class的生成和查看
JDK动态代理文件$Proxy0.class的生成和查看
JDK动态代理文件$Proxy0.class的生成和查看
JDK动态代理文件$Proxy0.class的生成和查看
JDK动态代理文件$Proxy0.class的生成和查看

代理class文件查看

代理class的生成路径是在idea的工作空间下的 com\sun\proxy 目录中,如下图所示:
JDK动态代理文件$Proxy0.class的生成和查看

注意:切记 $Proxy0.class 文件和源代码不在同一个目录中

查看 $Proxy0.class 文件内容,使用反编译工具(jd-gui)查看如下图所示:
JDK动态代理文件$Proxy0.class的生成和查看

相关文章: