【Spring学习】Spring的源码解析之路 ——【step1】基础环境配置 + IDEA快捷键整理
前导:
本次主要是关于“基础环境搭建”的内容,分为三个部分,(1)查看源码和项目需要的开发集成环境Intellig IDEA的使用,(2)如何导入源码,(3)在这个过程中梳理出的快捷键
正文:======》》》》
一、查看源码和项目的开发集成环境的使用
1、 下载:
从Spring官网直接下载Spring-framwork的源码:https://spring.io/projects/spring-framework,点击右上角的github图标,进入:https://github.com/spring-projects/spring-framework,解压下载的zip包到工程目录下;(我比较多会直接从最新版本入手)
想要下载某个版本的包的话,可以通过github的地址页面点击这里:

点击之后到下个页面的这里:

点击左边的菜单选择:Artifact

之后按照路径org/ springframework/spring就能找到多个版本:

之后点击Download即可
另外也可以直接通过增加版本号的方式:
https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip
2、 IDEA工具的下载直接搜索就会很多,工具问题不在这里详述
二、导入源码过程
通过IDEA中的File-New Project From Sources,之后选择解压的源码目录,之后会出现这个页面,直接选择推荐使用的Use default gradle wrapper即可,否则自己选择的Gradle可能出现版本兼容问题

之后经过漫长等待,完成之后就可以看到源码啦
备注:如果导入的工程如果后面出现了点击Ctrl+鼠标左键点击某个类或者方法跳转不过去的话,可以关闭IDEA,之后打开工程的时候,不能用open,而应该是import project
三、Intellig IDEA的快捷键(限目前本人过程中会用到的,后续快捷键会跟着项目中用到的不断)
在具体看源码的过程中,结合IDEA中的菜单中的显示也清楚了记录了很多快捷键,并且处理了一些冲突情况,具体记录如下:
(1)查找:CTRL+shift+F(全局查找),CTRL+F(在当前页面查找)
(2)生成类图:先查找之后,Ctrl+Alt+Shift+U,生成类图,或者可能提示是选择:选择生成类图,还是模块依赖图,选择类图即可
(3)通过类图中的接口显示Implementations;或者查看抽象类的实现,快捷键是:Ctrl+Alt+B(Ctrl+点击可以进入方法或者类,如果是接口的话,就需要通过Ctrl+Alt+B查看实现,点击进入具体的某个实现中)
(4)在一个接口或者类的文件中,看所有的类方法,Ctrl+F12
(5)打开setting设置窗口 —— 菜单:File-Settings;快捷键是:Ctrl+alt+S
(6)查看前进和返回 —— 通过Ctrl+鼠标点击到某个类上,可以跟进去(作用同快捷键:Ctrl+Alt+向右箭头,但是这个快捷键是必须得有过点击进去的操作返回之后再向右才可以),想要返回上一级的话,就通过Ctrl+Alt+向左箭头(然后使用这个快捷键时,发现跟其他的快捷键是冲突的,会导致屏幕旋转,具体关闭快捷键的文档地址在这里:https://jingyan.baidu.com/article/fec4bce27e421cf2618d8bc5.html)
(7)查看常量的值或者查看document的,通过ctrl+q
后续:=====》》》》
到了目前为止,整个源码可以看到,基础快捷键的使用也OK了,接下来看源码的过程中可以通过画类图和查看方法等方式不断熟悉源码本身,下面在源码类图会梳理出UML中各种线条含义的内容;下面会先自己创建一个SpringMVC的项目,然后结合项目中涉及内容跟进源码
【Spring学习】Spring的源码解析之路 ——【step1】基础环境配置 + IDEA快捷键整理的更多相关文章
- 【Spring学习】Spring的源码解析之路
缘起:=====>>>> 在项目中实际上是用到了Spring的内容,只是直接用的SpringBoot,不管是Eclipse中还是在Intellig IDEA中,应该都比较容易能 ...
- 【Spring】Spring IOC原理及源码解析之scope=request、session
一.容器 1. 容器 抛出一个议点:BeanFactory是IOC容器,而ApplicationContex则是Spring容器. 什么是容器?Collection和Container这两个单词都有存 ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- Spring Boot @Enable*注解源码解析及自定义@Enable*
Spring Boot 一个重要的特点就是自动配置,约定大于配置,几乎所有组件使用其本身约定好的默认配置就可以使用,大大减轻配置的麻烦.其实现自动配置一个方式就是使用@Enable*注解,见其名知 ...
- 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)
QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 废话少说,本篇博文的目的就是深入学习 WifiManager 这个gi ...
- spring cloud深入学习(四)-----eureka源码解析、ribbon解析、声明式调用feign
基本概念 1.Registe 一一服务注册当eureka Client向Eureka Server注册时,Eureka Client提供自身的元数据,比如IP地址.端口.运行状况指标的Uri.主页地址 ...
- Spring中AOP相关源码解析
前言 在Spring中AOP是我们使用的非常频繁的一个特性.通过AOP我们可以补足一些面向对象编程中不足或难以实现的部分. AOP 前置理论 首先在学习源码之前我们需要了解关于AOP的相关概念如切点切 ...
- Spring Boot入门,源码解析
目录 1.Spring Boot简介 2.微服务 3.Spring Boot HelloWorld 3.1 创建一个Maven工程 3.2 导入依赖Spring Boot相关的依赖 3.3 编写一个主 ...
- Spring Security 登录校验 源码解析
传统情况下,在过滤器中做权限验证,Spring Secuirty也是在Filter中进行权限验证. 创建并注册过滤器 package com.awizdata.edubank.config; impo ...
随机推荐
- (转)MSSQLSERVER执行计划详解
原文地址:http://www.cnblogs.com/knowledgesea/p/5005163.html 序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2. ...
- c语言函数参数类似继承的传递
函数的参数如果是一个父结构的指针, 这个结构包含在另一个子结构中, typedef struct test_node_one test_node_one_t; typedef struct test_ ...
- 如何在vue+element中实现选择框和穿梭框的根据拼音以及拼音首字母以及汉字的模糊搜索
1.汉字: 直接添加对应的 filterable 2.拼音: 穿梭框和选择器的实现方式有所不同 选择器: <1>下载pinyin-match: npm i --save ...
- run in thread
def run_in_thread(runnable, is_daemon=True): server_thread = Thread(target=runnable) server_thread.s ...
- mass
@python青岛qq群 1.爬取豆瓣,登录一次爬取后再循环就退出登录,抓不到了: 2.用requests.session试试,只要session对象不释放,就能记住登录状态的cookie: 3.se ...
- CentOS安装Python模块cx_Oracle
在线安装 $ wget https://bootstrap.pypa.io/get-pip.py$ python get-pip.py$ pip -V #查看pip版本 或者将网页中的代码复制到get ...
- Vue stage2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android APK反编译(二)
参考:APK反编译 工具介绍 apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件) ...
- 如何更改Audition的界面颜色
如何更改Audition的界面颜色_百度经验 https://jingyan.baidu.com/article/77b8dc7fce2c6a6174eab6f6.html
- session的处理机制
https://blog.csdn.net/deepwishly/article/details/6659613 https://blog.csdn.net/dz45693/article/detai ...