java开源项目文件夹_如何玩转一个开源项目-如何运行和读代码

1. 了解项目是干嘛的,有没有兴趣学习,有哪些技术点,一般在开源项目最后作者都会留有自述文件。(可以提前拆分了解技术点,大体有个概念后,对项目入手有较大的帮助)b6d019576e9730efa84698c109a3b875.png

2. 将项目跑起来(跑起来才有信心进行接下的学习)

41d5b68b936ef78334c06a6625323211.png

基本上github上面的开源项目有两种管理方式maven或者gradle,直接在github就可以看出来。有pom.xml文件的为maven管理,build.gradle文件为gardle管理,导入方式不同需注意。50fd95c1da57800b9336a3547f31a921.png

3. 阅读项目源并调试(可结合某个运行起来的功能入手,一个组件一个组件的弄熟、看报错、看日志、看打印变量)

正好准备搞一个个人博客,凑着一块来吧,Github搜Halo

此项目是基于SpringBoot写的,下面了解一下项目结构首先是build.gradle 项目管理文件 里面是各种依赖(直接在此文件就可以看出用了那些技术点,可以拆分了解一下具体的知识点)

2dc62d358ea40a87e2a6c664116a57aa.png其次就是src文件夹 里面是源码以及资源文件

a67f2f3bc653a814d420682e0fd6c320.pngJava文件夹中的Application文件为SpringBoot项目的入口文件(有些可能命名不是这个,根据位置找就行了,main方法在就是)

65739824384d92c4138fdbc6904e18e0.pngresources目录下的.yaml 为配置文件

1f805adfb2510e40d35f7e2562cee5d8.pngbanner文件 启动时的样式,类似于欢迎页的东西

d638d02e4ed0c68135c6b2ba3c7352b8.pngresources目录下的目录里面存档的是静态资源

4c9020ad495601fe77dae64bbbd1e31b.png

下面是看源码的主要步骤:建议首先从controller(控制器)看起,以为这里是前后端交互的入口2465c88890d15e6335824d2ab7e2cd99.png示例:例如登录 在admincontorller中 可以看到login 调用了adminService 按住ctrl点击 》》可以看到引用的哪个

86ea4fc12c50253cfa3dc06bf65e03f2.png

17dc470fdd3f796a14c7cef94299fc7d.png继续按住Ctrl 点击AdminService就会跳转到对应的Service文件,可以看到此文件是实现的接口,点击左侧的向下箭头,就会跳转到接口

108ceafc125db4d6f8056cb6c987ac1e.pngb0aae43925e879adb1036d552cc7001b.png

tip:左上有个小图标,可以定位当前正在编辑的文件的目录

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

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

8c5a8be68919460a9783baac87004433.png

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

05a5cc00276d45719227e64eda290156.png有数据库操作语句就得有实现对象,这时就到了model层,可以看到这里都是一些与数据库强相关的东西

a449159f145d0aff4069e54adb93dc23.png到这里主要的实现代码基本上都有了,后面就是一些其他的(不需要主要去看的东西,而且也不一定能看懂的。。。。):

utils 工具类 存放各种工具

85d7f2caf80cdf2bf17c184ea5b216c3.png

Security 安全类 登录验证等东西

b303a83ea408ddf210d0bdd58bbc074d.png

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

33720c32537ec8f0f5d1559c3043bdc2.png

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

3d55783db63283a13a850da858ab5eca.png

filter 过滤器

ef947513f452aee1499b2f7c97d7014a.png

factory 工厂

92b15422c9d7a06d348ff551794809bb.png

exception 异常定义

a1570e10fcdeeb31058df280ffd1be6e.png

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

c33ccbcd1b494205a00f1986f3fe16f7.png

config 配置

ad26863856f92356645a471c72bbc2a0.png

cache 与缓存相关的下面就到了喜闻乐见的总结环节

Controller ==>Service ==>repository ==>model

主线基本上就这些,其他都是辅助

SpringBoot 我学习的时候是从Spring开始再到SpringMVC再到SpringBoot真的是非常非常吃力,无数个配置文件,几乎都要放弃了。硬着头皮往下学发现SpringBoot我竟然学的还算轻松。如果你和我一样,不妨试着反向学习。

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

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

cb65d2180809de640fdcd433ef675d72.png

例如我想调试登录:将控制台显示界面切换到Network,点击登录

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

f0bc89e5fd339427c5d91c3c3208dc52.png此页面拉到最后,就会看到刚刚代码干的事情

d58dcc634b72c95cdddc604ba52703fc.png点击Preview可以看到预览

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

e82e86ea4fcf962f7398ff79c0ad5c79.png找到后点击

bd0f50f6693a1060faa9d27b5cd5c3d4.png跳转到对应的代码页

dac20df86b47c5087ea0af133899c683.png由此就可以看出来刚刚浏览器中的操作就是此代码块实现的,在这个地方打个断点,浏览器中退出登录重新点击登录,就会跳入断点

1f69bfb936df1a9b367fc0e881a008c4.png鼠标放代码上就会显示传的参数

58eb2d0873d5300407d4f61b4f2282a3.png在此代码块中找到实现的方法方法,按住Ctrl点击

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

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

d3b4f9eb7161f08c4f12dfd0b24e36c4.png之后按F5慢慢调试

09a73efaac2ed2b6e92afefc75f205e7.png

一个功能结束之后,同样的方法,一个功能一个功能的慢慢调试,直到吃透整个项目

4. 自己改东西加自己的功能模块(内化为自己的东西)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值