1. 理解我的项目是干嘛的,有没有趣味学习,有哪些技术点,个别在开源我的项目最初作者都会留有自述文件。(能够提前拆分理解技术点,大体有个概念后,对我的项目动手有较大的帮忙)
2. 将我的项目跑起来(跑起来才有信念进行接下的学习)


基本上github下面的开源我的项目有两种治理形式maven或者gradle,间接在github就可以看进去。有pom.xml文件的为maven治理,build.gradle文件为gardle治理,导入形式不同需注意

3. 浏览我的项目源并调试(可联合某个运行起来的性能动手,一个组件一个组件的弄熟、看报错、看日志、看打印变量)

正好筹备搞一个集体博客,凑着一块来吧,Github搜Halo
此我的项目是基于SpringBoot写的,上面理解一下我的项目构造

首先是build.gradle 项目管理文件 外面是各种依赖(间接在此文件就能够看出用了那些技术点,能够拆分理解一下具体的知识点)

其次就是src文件夹 外面是源码以及资源文件

Java文件夹中的Application文件为SpringBoot我的项目的入口文件(有些可能命名不是这个,依据地位找就行了,main办法在就是)

resources目录下的.yaml 为配置文件

banner文件 启动时的款式,相似于欢送页的货色

resources目录下的目录外面存档的是动态资源

上面是看源码的次要步骤:
倡议首先从controller(控制器)看起,认为这里是前后端交互的入口
示例:例如登录 在admincontorller中 能够看到login 调用了adminService 按住ctrl点击 》》能够看到援用的哪个


持续按住Ctrl 点击AdminService就会跳转到对应的Service文件,能够看到此文件是实现的接口,点击左侧的向下箭头,就会跳转到接口


tip:左上有个小图标,能够定位以后正在编辑的文件的目录

到这里就转到了Service层(服务层) Service层是服务于Controller层的(Controller层没有具体的代码,仅仅是调用,调用的对象就定义在Service外面)

示例:老样子按住Ctrl 跳转到更深一步的代码

之后点击定位

文件定位在repository目录下。这里就到了第三层,点开文件就会发现外面是一些SQL语句,所以这层就是数据交互层。

有数据库操作语句就得有实现对象,这时就到了model层,能够看到这里都是一些与数据库强相干的货色

到这里次要的实现代码基本上都有了,前面就是一些其余的(不须要次要去看的货色,而且也不肯定能看懂的。。。。):

utils 工具类 寄存各种工具

Security 安全类 登录验证等货色

listener 监听类 监听我的项目运行时的状态等打印在控制台中(有些我的项目可能没有,集体认为不是太重要)

hander 寄存一些处理器 总之就是一些辅助工具

filter 过滤器

factory 工厂

exception 异样定义

event 事件 可能会有继承关系 间接按住Ctrl追踪就行

config 配置

cache 与缓存相干的

上面就到了脍炙人口的总结环节

Controller ==>Service ==>repository ==>model
主线基本上就这些,其余都是辅助
SpringBoot 我学习的时候是从Spring开始再到SpringMVC再到SpringBoot真的是十分十分吃力,无数个配置文件,简直都要放弃了。硬着头皮往下学发现SpringBoot我居然学的还算轻松。如果你和我一样,无妨试着反向学习。

调试:点击左上角的小虫子,以调试模式启动

之后在谷歌浏览器中运行,F12进入开发者模式

例如我想调试登录:

将控制台显示界面切换到Network,点击登录

控制台就会跳出申请过程,在Name栏找到login点击,就会呈现如下页面,URL中login复制下来备用

此页面拉到最初,就会看到刚刚代码干的事件

点击Preview能够看到预览

接下来转到Idea中,我的项目上右击,找到Find in path点击,将刚刚复制的地址粘贴进去

找到后点击

跳转到对应的代码页

由此就可以看进去刚刚浏览器中的操作就是此代码块实现的,在这个中央打个断点,浏览器中退出登录从新点击登录,就会跳入断点

鼠标放代码上就会显示传的参数

在此代码块中找到实现的办法办法,按住Ctrl点击

能够看出这是实现的接口,点击左侧的向下箭头,这里就找的了真正的登录校验代码

在这里打个断点,按F8进入本行代码

之后按F5缓缓调试

一个性能完结之后,同样的办法,一个性能一个性能的缓缓调试,直到吃透整个我的项目

4. 本人改货色加本人的功能模块(内化为本人的货色)