前导:

本次主要是关于“基础环境搭建”的内容,分为三个部分,(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快捷键整理的更多相关文章

  1. 【Spring学习】Spring的源码解析之路

    缘起:=====>>>> 在项目中实际上是用到了Spring的内容,只是直接用的SpringBoot,不管是Eclipse中还是在Intellig IDEA中,应该都比较容易能 ...

  2. 【Spring】Spring IOC原理及源码解析之scope=request、session

    一.容器 1. 容器 抛出一个议点:BeanFactory是IOC容器,而ApplicationContex则是Spring容器. 什么是容器?Collection和Container这两个单词都有存 ...

  3. Spring Boot系列(三):Spring Boot整合Mybatis源码解析

    一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...

  4. Spring Boot @Enable*注解源码解析及自定义@Enable*

      Spring Boot 一个重要的特点就是自动配置,约定大于配置,几乎所有组件使用其本身约定好的默认配置就可以使用,大大减轻配置的麻烦.其实现自动配置一个方式就是使用@Enable*注解,见其名知 ...

  5. 深入学习 esp8266 wifimanager源码解析(打造专属自己的web配网)

    QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 废话少说,本篇博文的目的就是深入学习 WifiManager 这个gi ...

  6. spring cloud深入学习(四)-----eureka源码解析、ribbon解析、声明式调用feign

    基本概念 1.Registe 一一服务注册当eureka Client向Eureka Server注册时,Eureka Client提供自身的元数据,比如IP地址.端口.运行状况指标的Uri.主页地址 ...

  7. Spring中AOP相关源码解析

    前言 在Spring中AOP是我们使用的非常频繁的一个特性.通过AOP我们可以补足一些面向对象编程中不足或难以实现的部分. AOP 前置理论 首先在学习源码之前我们需要了解关于AOP的相关概念如切点切 ...

  8. Spring Boot入门,源码解析

    目录 1.Spring Boot简介 2.微服务 3.Spring Boot HelloWorld 3.1 创建一个Maven工程 3.2 导入依赖Spring Boot相关的依赖 3.3 编写一个主 ...

  9. Spring Security 登录校验 源码解析

    传统情况下,在过滤器中做权限验证,Spring Secuirty也是在Filter中进行权限验证. 创建并注册过滤器 package com.awizdata.edubank.config; impo ...

随机推荐

  1. 2018秋寒假作业6—PTA编程总结3

    1.实验代码 7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T) ...

  2. Anaconda安装及配置

    简介 Anaconda(官方网站)指的是一个开源的Python发行版本,可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本.Anaconda包含了conda.Python在内的超过18 ...

  3. Redis深入学习笔记(一)Redis启动数据加载流程

    这两年使用Redis从单节点到主备,从主备到一主多从,再到现在使用集群,碰到很多坑,所以决定深入学习下Redis工作原理并予以记录. 本系列主要记录了Redis工作原理的一些要点,当然配置搭建和使用这 ...

  4. Python对wav文件的重采样

    例如从2channel,4.41k hz 重采样到 1 channel,16k hz def downsampleWav(src, dst, inrate=44100, outrate=16000, ...

  5. group by 拓展

    Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...

  6. SQL Server 2008 R2中配置作业失败后邮件发送通知

    SQL Server日常维护中难免会遇到作业失败的情况.失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的.比较专业的监控系统比如SCOM虽然可以监控作业执行情 ...

  7. pinyin.js

    export default { a: "\u554a\u963f\u9515", ai: "\u57c3\u6328\u54ce\u5509\u54c0\u7691\u ...

  8. Problem B: 故障电灯(light)

    考虑对电灯进行差分:若第i个电灯和第i + 1个电灯状态不同,则在第i个位置上放一个球 这样我们就放置了不超过2n个球,且必然是偶数个 于是问题转化为:有m个球,每一步可以把一个球平移奇质数个位置,两 ...

  9. class中限定绑定属性__slots__方法

    使用__slots__但是,如果我们想要限制class的属性怎么办?比如,只允许对Student实例添加name和age属性.为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的 ...

  10. ELK日志监控平台安装部署简介--Elasticsearch安装部署

    最近由于工作需要,需要搭建一个ELK日志监控平台,本次采用Filebeat(采集数据)+Elasticsearch(建立索引)+Kibana(展示)架构,实现日志搜索展示功能. 一.安装环境描述: 1 ...