前段时间分享了《阅读跟踪 Java 源码的几个小技巧》是基于 Eclipse 版本的,看大家的留言都是想要 IDEA 版本的源码阅读技巧。

所以,为了满足众多 IDEA 粉丝的要求,栈长我特意做一期 IDEA 版的。

1、定位到方法实现类

public static Object getBean(String name) {
return applicationContext.getBean(name);
}

如以上代码,IDEA 如何跳转到 getBean 方法的实现类?

在 IDEA 中,CTRL + 鼠标左击 默认会跳到方法所在的接口,如 getBean 就会跳到 BeanFactory 接口里面去。

org.springframework.beans.factory.BeanFactory

在 IDEA 中略显麻烦,在引用的方法上 CTRL + ALT + 鼠标左击(B)可以实现跳转至实现类,如果有多个实现类会弹出让你选择。

点击右上角 Open as Tool Window 图标还能展开更多详细。

2、查看类层级关系

到了 BeanFactory 类,在任意地方使用快捷键 CTRL + H 可以打开类的继承层级面板。

或者直接选中 BeanFactory 类名称,再按 CTRL + ALT + 鼠标左击(B),同样可以展示 BeanFactory 类的所有继承类的关系。

还有更屌的!

右键任意类,选择 Diagrams > Show Diagram... 可以打开类的继承图。

看起来有点乱,那是因为我选择了所有实现类展示,实际请合理利用 Show Parents 和 Show Implementations 菜单。

3、查看类结构

如上图所示,IDEA 中也有 Eclipse 中 outline 的面板,叫作:Structure,有了这个面板,可以快速浏览一个类的大纲,也可以快速定位到类的方法、变量等。

也可以使用快捷键 Alt + 7 调出这个面板。

4、源码统计

如图所示,栈长在 IDEA 中装了一个 Statistic 插件,这个插件只支持 JDK 1.8+。

有了这个插件,它可以在项目中按文件类型进行代码的行数、数量、大小统计。这样你就能知道整个源码的总体数量,你也可以把已经阅读的做统计,慢慢实现源码阅读的攻破。

熟练的运用 IDEA 中各个小技巧,让阅读跟踪源码变得更轻松。

更多往期 IDEA 技术文章可以关注Java技术栈微信公众号,在后台回复关键字:IDEA。

Intellij IDEA 阅读源码的 4 个绝技,我必须分享给你!的更多相关文章

  1. 阅读源码的利器——Intellij-IDEA-Replace-in-Path-使用技巧

      前言 讲讲宇宙排名第二的开发工具-–IDEA的使用技巧. 搜索/替换 技巧 阅读源码的利器   1.Match case: 如果勾选该按钮,搜索时将区分大小写字母. 2.Preserve case ...

  2. 【转】使用 vim + ctags + cscope + taglist 阅读源码

    原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...

  3. Spring源码解析——如何阅读源码(转)

    最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo ...

  4. Spring源码解析——如何阅读源码

    最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo ...

  5. 阅读源码(III)

    往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> Medium上有一篇文章Why You Don't Deserve That Dream Developer Jo ...

  6. 阅读源码(IV)

    往期系列: <由阅读源码想到> <由阅读源码想到 | 下篇> <阅读源码(III)> Eric S.Raymond的写于2014年的<How to learn ...

  7. How Tomcat works — 一、怎样阅读源码

    在编程的道路上,通过阅读优秀的代码来提升自己是很好的办法.一直想阅读一些开源项目,可是没有合适的机会开始.最近做项目的时候用到了shiro,需要做集群的session共享,经过查找发现tomcat的s ...

  8. 使用 vim + ctags + cscope + taglist 阅读源码

    转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...

  9. 转载~Linux 平台下阅读源码的工具

    Linux 平台下阅读源码的工具 前言 看源代码是一个程序员必须经历的事情,也是可以提升能力的一个捷径.个人认为: 要完全掌握一个软件的方法只有阅读源码在Windows下有sourceinsight这 ...

随机推荐

  1. js中的拷贝问题

    浅拷贝的实现 // 浅拷贝函数 var dad = {name:'chen',age:18}; var son = {sex:'男'}; function clone(dad,son){ var so ...

  2. 27.app后端搭建聊天服务器的经历

    现在,聊天功能已经成了社交app的标配了.但是,众多web开发出生的程序员对聊天相关的服务的不了解,带来了很多开发上的困扰.在这篇文章中,根据下面3个方面,谈谈聊天服务. 1.      聊天服务的技 ...

  3. 12.app后端如何选择合适的数据库产品

    app后端的开发中,经常要面临的一个问题是:数据放在哪里? mysql ?redis?mongodb? 现在有这么多优秀的开源数据库产品,怎么根据业务场景来选择合适的数据? 常用的数据库产品的优缺点又 ...

  4. Python跨目录调程序

    #!/usr/bin/python # -*- coding: utf-8 -*- # 导入其它目录下的文件, 需要去帮获取当前程序的绝对路径并加入到环境变量的相对路径中 import os impo ...

  5. 如何去掉word中的回车符??

    打开word界面,点击页面左上角的"文件"按钮,进入到文件栏目中,进行设置. 进入文件之后,在左下角找到并点击"选项",进入到word的设置界面中 进入到wor ...

  6. rename.go

    {         if err != nil {             return err         }         return syscall.EINVAL     }     r ...

  7. 从头到尾彻底解析Hash 表算法

    作者:July.wuliming.pkuoliver  出处:http://blog.csdn.net/v_JULY_v.  说明:本文分为三部分内容,    第一部分为一道百度面试题Top K算法的 ...

  8. Opencv(C++)实现二阶线性插值

    #include<opencv2\opencv.hpp> #include<iostream> using namespace cv; using namespace std; ...

  9. ELK入门使用-与springboot集成

    前言 ELK官方的中文文档写的已经挺好了,为啥还要记录本文?因为我发现,我如果不写下来,过几天就忘记了,而再次捡起来必然还要经历资料查找筛选测试的过程.虽然这个过程很有意义,但并不总是有那么多时间去做 ...

  10. Https协议与HttpClient的实现

    一.背景 HTTP是一个传输内容有可读性的公开协议,客户端与服务器端的数据完全通过明文传输.在这个背景之下,整个依赖于Http协议的互联网数据都是透明的,这带来了很大的数据安全隐患.想要解决这个问题有 ...