场景:Spring在运行期间,会自动给咱们的业务类Service Bean等等生成,出于好奇,想康康Spring到底给咱们生成了什么东西,这时候可以使用 HSDB 工具进行查看。

  1. 首先确保本机安装了JDK
  2. 确认Java进程的PID,本文章以Windows作为示例
进入HSDB工作目录



输入 java -classpath sa-jdi.jar "sun.jvm.hotspot.HSDB" 启动HSDB。



程序启动后,按照上图进行点击操作


输入你的Java进程PID


经过查询,我的8080端口Java进程PID是 56552

进入后会出现下面这幅画面,这时候说明我们的工具已经成功连接上Java进程了。

按照下图点击操作

看下图,这时候就会出现咱们所有的Class类了

这时候搜索框里输入我们的类,并且回车,下面就会出现我们关心的类,以及Spring生成的代理类。

点击我们关心的类,进入以后,点击 Create .class File 这时候这个文件会生成到我们启动HSDB的当前目录下。

因为我们是在 /d/Java/jdk1.8.0_251/lib 目录下启动的HSDB,所以我们的类都被生成在这里啦,并且会根据我们的包名生成层级文件夹,我们找到对应的class类以后,拖进IDEA里自动反编译,就可以知道生成代码的大致逻辑是怎么样的啦。

到此结束,有问题,请留言。

问题一 : Attach to HotSpot process 时,卡住不动

查看一下你的控制台命令行,应该是无法加载 sawindbg.dll文件异常,请把java jdk目录下的jre/bin文件下的sawindbg.dll放到jre的bin目录下,例如我的就是 D:\Java\jdk1.8.0_251\jre\bin\sawindbg.dll 复制到 D:\Java\jre1.8.0_251\bin\sawindbg.dll 就可以了。

参考:https://www.lagou.com/lgeduarticle/101827.html

使用 HSDB 查看Spring AOP产生的代理类相关推荐

  1. 【Spring AOP】静态代理设计模式、Spring 动态代理开发详解、切入点详解(切入点表达式、切入点函数)

    AOP 编程 静态代理设计模式 1. 为什么需要代理设计模式 2. 代理设计模式 名词解释 代理开发的核心要素 静态代理编码 静态代理存在的问题 Spring 动态代理开发 搭建开发环境 Spring ...

  2. Spring AOP自动创建代理 和 ProxyFactoryBean创建代理

    Advice 通知类型 AOP联盟为通知Advice定义了org.aopalliance.aop.Interface.Advice,Spring按照通知Advice在目标方法的连接点位置,可以分为5种 ...

  3. Spring : Spring Aop CGLIB动态代理调用过程

    1.美图 2.概述 CGLIB动态代理参考: CGLIB动态代理 CGLIB原理解析参考:CGLIB原理解析 3.分析 Spring AOP CGLIB动态代理调用过程分析,CGLIB动态代理调用过程 ...

  4. SpringBoot/Spring AOP默认动态代理方式

    Spring 5.x中AOP默认依旧使用JDK动态代理 SpringBoot 2.x开始,AOP为了解决使用JDK动态代理可能导致的类型转换异常,而使用CGLIB. 在SpringBoot 2.x中, ...

  5. spring—AOP 的动态代理技术

    AOP 的动态代理技术 常用的动态代理技术 JDK 代理 : 基于接口的动态代理技术 cglib 代理:基于父类的动态代理技术 JDK 代理 public class proxy {@Testpubl ...

  6. spring aop如何在切面类中获取切入点相关方法的参数、方法名、返回值、异常等信息

    aop思想可以很好的帮助我们实现代码的解耦,比如我们之前提到的,将日志代码与业务层代码完全独立,通过spring aop的代理类进行整合.在切面类中,我们也能够通过spring提供的接口,很好的获取原 ...

  7. spring aop 申明了切面类之后,如何申明切入点呢?

    2019独角兽企业重金招聘Python工程师标准>>> 8.2.3 Declaring a pointcut Recall that pointcuts determine join ...

  8. Spring AOP编程-aspectJ代理方式选择

    1.在spring的aop开发中,它使用的是代理方案,代理实现有两种: 1)jdk的proxy 2)cglib spring框架默认情况下,会对有接口的类使用proxy代理.没有接口的类使用cglib ...

  9. Spring : Spring Aop JDK动态代理调用过程

    1.美图 2.概述 JDK动态代理参考 : JDK动态代理 3.源码 打开JdkDynamicAopProxy类,查看invoke方法: /*** Implementation of {@code I ...

最新文章

  1. 和为s的连续正数序列java_剑指Offer41:和为S的连续正数序列(Java)
  2. spring定时任务重复执行2次问题的解决
  3. 【python】数据结构与算法—双端队列(一)
  4. 干货推荐 | 如何设计按钮?
  5. P1303 A*B Problem 高精度乘法
  6. Android 系统(115)---死机问题分析
  7. SQL Server MDS(主数据服务)介绍
  8. Leetcode每日一题:121.best-time-to-buy-and-sell-stock(买股票的最佳时机)
  9. JQuery Mobile Popup窗口定位
  10. 通过 Kaspersky Security Center 卸载 Kaspersky Endpoint Security
  11. 基于UDP协议的Java聊天室
  12. 信度spss怎么做_怎么用spss处理信度和效度?
  13. 关于fabricjs移动、放大等一些列操作后位置不对的问题
  14. 【C语言】输出百分号“%”
  15. 安卓RecyclerView万能分割线
  16. SpringBoot公共字段自动填充
  17. SAP采购信息记录维护
  18. 三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7
  19. 中国信通院副院长王志勤:加快5G新基建,驱动数字化转型升级 (视频+全文+PPT)...
  20. 模块化封装和组件化封装

热门文章

  1. 2021年度总结——熬了3 年的芯片今晚来了
  2. 快速排序Rapidly Sort
  3. 《视频直播技术详解》之(三):编码和封装
  4. Video标签播放视频(动态视频URL)
  5. 【飞秋教程】群聊天/群共享/群日志
  6. 最佳平方逼近的Matlab
  7. 菱形程序设计以及宏定义的应用
  8. 【单片机】辉光管时钟系列<二>LCD液晶显示
  9. layout_gravity 和 gravity以及对应值的详解
  10. VUE 学习之parent 选项