1、首先,需要引用一个cglib运用的例子。又由于只有在运行期才能看到代理类,因此需要在测试最后加入System.in.read(),让程序阻断,一直处于运行中。
2、在IDEA中将程序运行起来,此时打开cmd,输入如下命令,注意红框中是sa-jdi.jar的路径。按回车键,进入HSDB操作界面。
3、菜单栏中选择file->Attach to hotspot process,弹出Attach to hotspot process对话框,其中需要录入进程id。
4、这里的进程id,我们可以再打开一个cmd界面,去查找进程号。键入jps -l 命令,回车即可看到当前虚拟机中运行的线程。按照我们的测试类可以找到进程号。
5、在Attach to hotspot process对话框中录入查找到的进程id,点击ok;此时hotspot debugger界面菜单tools按钮不再是灰色。
6、选择Tools->Class Browser,
7、弹出Class Browser界面,在搜索栏中键入被代理类,查询,找到代理类。
8、点击找到的代理类,在界面下半面将展示出该类的信息。
9、选择Create .class File,将在默认路径下创建该类的.class文件。一般是电脑用户路径+被代理类包路径。
10、使用jd-jui等反编译工具,打开class文件,即可看到代理类的代码。