個人部落格專案完工
本文主要總結一下專案的流程、技術點、難點,希望對有想搭建個人部落格的朋友有所幫助
ps:部落格還是初期版本_暫定版本0.0.1趴(麻雀雖小但五臟俱全~),之後會根據功能和體驗改進(說不定會開放多使用者嘞)
正文部分
一、使用技術
-
前端:Semantic UI
-
後端:Spring Boot
-
前後端聯結:Thymeleaf
-
資料庫:MySQL8
-
開發環境:IDEA(Win7下)
-
生產環境:CentOS 7
前端展示部分:
公共部分:
-
導航欄模組
-
底部資訊模組
部落格展示系統:
-
首頁
-
主體部分
-
部落格展示模組
-
部分分類展示模組
-
部分標籤展示模組
-
最新推薦部落格展示模組
-
-
-
分類頁面
-
主體部分:
-
分類展示模組
-
部落格內容展示模組
-
-
-
標籤頁面
-
主體部分:
-
標籤展示模組
-
部落格內容展示模組
-
-
-
歸檔頁面
-
歸檔內容模組
-
-
搜尋頁面
-
搜尋結果展示模組
-
-
關於我頁面
-
資訊展示主體部分
-
部落格管理系統
公共部分:
-
二級導航欄
各個頁面不同部分
-
登入頁面
-
資訊輸入框
-
-
歡迎頁面
-
部落格管理頁面
-
部落格模糊搜尋模組
-
部落格狀態展示&&編輯模組
-
-
標籤管理頁面
-
標籤展示&&編輯模組
-
-
標籤釋出頁面
-
標籤輸入模組
-
-
分類管理頁面
-
分類展示&&編輯模組
-
-
分類釋出頁面
-
分類輸入模組
-
-
部落格釋出頁面
-
部落格輸入模組
-
標題輸入
-
型別選擇
-
主體輸入
-
分類選擇模組
-
標籤選擇模組
-
首圖連結選擇模組
-
摘要輸入模組
-
功能選擇模組
-
-
後端邏輯部分:
SpringBoot大致框架如下:
model層(面相物件的各個實體類,用於連線資料庫)
dao層(結合model層,連線資料庫)
service層(實現各實體類操作介面,結合dao層獲取並處理資料)
view層(對接前端,給前端頁面渲染髮送所需的資料)
-
配置:
-
分為兩個配置,在統一的application.yml檔案中進行切換,開發環境使用的dev配置,可以改動資料庫結構,生產環境使用pro配置,不可以改動資料庫結構,只能進行增刪改查
-
dev配置
-
pro配置
-
-
專案配置:儲存在pom.xml檔案中
-
-
model層:
-
Blog實體類
-
Comment實體類
-
Tag實體類
-
Type實體類
-
User實體類
-
-
dao層(使用JPA對接資料庫):
-
Blog倉庫
-
Comment倉庫
-
Tag倉庫
-
Type倉庫
-
User倉庫
-
-
service層:
-
部落格服務介面
-
評論服務介面
-
標籤服務介面
-
分類服務介面
-
使用者服務介面
-
-
view層
-
管理系統View層:
-
Blog控制器
-
登入控制器
-
標籤處理控制器
-
分類處理控制器
-
-
展示系統View層:
-
關於我頁面控制器
-
歸檔頁面控制器
-
評論功能控制器
-
首頁控制器
-
標籤展示控制器
-
分類展示控制器
-
-
-
工具類:
-
markdown文字處理(每次載入渲染html標籤)類
-
MD5加密工具(用於登入使用者密碼加密,後臺資料庫中儲存的是密文)
-
Bean工具類(用於比對更新資料與原有資料中不同的部分)
-
-
攔截器:攔截未經許可訪問管理頁面的請求
-
日誌輸出模組:
-
自動寫入日誌模組
-
異常攔截模組(防止控制器異常發生之後直接阻塞服務導致其他使用者無法訪問,將異常全部寫入日誌檔案)
-
三、具體實現
ps:由於整體程式碼檔案過長,所以程式碼就放在github上——之後的更新也會在github上說明,本文只做簡略以及重點說明
前端部分
管理系統:
技術點:
-
使用thymeleaf模板中的fragment功能,設定公共fragment檔案,將所有頁面相同的部分放在fragment檔案中,然後使用thymeleaf模板裡的方法來獲取;因為篇幅不長,此處貼一下其原始碼(導航欄使用了選擇器來將當前頁面高亮——需要在每個頁面中傳入不同的值)
-