最实用的使用idea看源码的技巧

很多时候新手看源码都会被绕晕, 本人也踩过这个坑,经过摸索 总结出来一些实用的看源码过程中的debug技巧。

首先,重点是带着问题去看,不然无处下手,都不知道入口是哪

举例:
我想看spring容器getBean时候的过程。是如何getbean的,如果有切面,又是如何实现的。

那么带着这个问题
在这里插入图片描述
我就需要去看
applicationContext.getBean("userService");
这行代码。

新手往往直接就点进去了,
在这里插入图片描述
然而再点进去之后是一个接口
在这里插入图片描述
这个时候就开始懵逼了
这个接口有n个实现,到底是走哪个??? 具体怎么走?
在这里插入图片描述

这个时候,第二个问题,不熟的源码,一定要开启debug模式,断点去看,因为框架里面的接口和抽象类往往有多个实现类,不到真正运行的时候,新手是看不出来是用的哪个实现类的。 使用step into可以进入方法内部, 最最注意的 在接口处打断点,debug的时候可以直接跳到该接口的实现类

例子:
打上断点debug
在这里插入图片描述

点进去getBean方法

在这里插入图片描述
此时点单步调试,先进来这段代码
在这里插入图片描述
进来之后
在这里插入图片描述
此时如果直接点getbean ,进行去是一个接口,那么可以在接口处打上断点,这样可以直接跳到该接口的实现类
在这里插入图片描述

然后点
在这里插入图片描述

就能进入到getBean实现类的方法
在这里插入图片描述

因此可以选择单步一步步看下去,也可以在接口处打上断点 直接跳到实现类。

注意:该方法也可能会被spring启动过程的其他类调用,因此加上断点之后,可能进入断点的时候不是自己的代码执行流程,因此,要么就是在启动之后,到了getBean那一步去加上断点,要么就是在断点上加上条件 过滤掉不是自己条件的调用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值