如果已經在 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 的方式可以較好的知道內部的邏輯,在自己寫項目的時候可以借鑒這種思路。