如果已经在 GitHub 上找到了一个完整的项目,如何学习一个项目呢?以 halo 博客系统为例,该项目使用 gradle 管理,使用了 Spring Boot 框架。
查看依赖
通过 maven 或 gradle 的配置查看项目依赖了哪些组件。
运行项目
Spring Boot 的项目在 src 目录下有一个 application 入口,可以据此运行整个项目。
查看 resources,配置文件等非代码的文件。
查看代码
controller 层,接收前端发来的请求,起调度作用
service 层,服务层,业务代码 / 逻辑代码
repository 存放和 db 交互的代码
model 都是对象,entity 和数据库相关,dto 存放再封装的对象
其他组件
util 工具包
security 安全验证
listener 监听器
filter 过滤器
handler 处理器
exception 异常处理
factory 工厂类
cache 缓存
config 配置
debug
通过前端的输入,通过 url 查找后端 controller 如何接收并处理请求,借鉴一种白盒测试的思路就可以知道内部的逻辑如何跳转的。整个项目结构比较完善,很多地方也是进行了多次的重构。借助 debug 的方式可以较好的知道内部的逻辑,在自己写项目的时候可以借鉴这种思路。