乐趣区

关于java:如何玩转一个开源项目如何运行和读代码

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. 本人改货色加本人的功能模块(内化为本人的货色)
退出移动版