使用 HSDB 查看Spring AOP产生的代理类
2020/2/23 17:03:01
本文主要是介绍使用 HSDB 查看Spring AOP产生的代理类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
因为aop产生的代理类是运行期的,所以没法直接查看,需要使用HotSpot Debugger工具才能查看
使用步骤
1. 启动java程序,保持运行状态。获取程序pid
2.使用
java -classpath "$JAVA_HOME/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB java -classpath "C:\Program Files\Java\jdk1.8.0_221\lib\sa-jdi.jar" sun.jvm.hotspot.HSDB 复制代码
命令启动hsdb
3.HSDB: File----->Attach to HotSpot Process----->填入pid
4.HSDB: Tools----->Class Browser
5.可以根据类的名字进行筛选,然后生成class字节码
注意事项
1.拿到字节码后反编译(丢入 idea自动反编译)即可查看代码
2.使用步骤2中如果发生如下错误
Exception in thread "Thread-1" java.lang.UnsatisfiedLinkError: Can't load library: C:\Program Files\Java\jre1.8.0_231\bin\sawindbg.dll at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.Runtime.load0(Unknown Source) at java.lang.System.load(Unknown Source) at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.<clinit>(WindbgDebuggerLocal.java:661) at sun.jvm.hotspot.HotSpotAgent.setupDebuggerWin32(HotSpotAgent.java:567) at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:335) at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304) at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140) at sun.jvm.hotspot.HSDB.attach(HSDB.java:1184) at sun.jvm.hotspot.HSDB.access$1700(HSDB.java:53) at sun.jvm.hotspot.HSDB$25$1.run(HSDB.java:456) at sun.jvm.hotspot.utilities.WorkerThread$MainLoop.run(WorkerThread.java:66) at java.lang.Thread.run(Unknown Source)复制代码
就找一下sawindbg.dll然后放到C:\Program Files\Java\jre1.8.0_231\bin\目录即可
这篇关于使用 HSDB 查看Spring AOP产生的代理类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现