學習是好的,但以爲是須要一個實踐項目來練手的,否則學的東西幾天就忘光了~html
so,我打算本身搭建一個博客網站來練習一下,把學到的東西都應用上。前端
項目架構
項目需求
需求背景
對於剛剛學習完SpringBoot的童鞋來講,沒有什麼是比實踐開發一個項目更有效的了,好比搭建一個本身的博客系統。mysql
需求列表(兼容移動端?)
- 前端-主頁
- Banner位預留
- 推薦博文+圖形輪播式展現;
- 博文列表,最多展現10篇,下拉加載更多;
- 標籤分類-側邊欄,點擊進入對應的文章分類列表頁;
- 文章搜索,模糊搜索指定文章信息、做者名稱;
- 頂tab分類,進入各個系統分類;
- 連接文章推薦區,外聯其餘做者的文章或博客;
- 閱讀量最多的文章列表,展現最多的前5篇文章;
- 博客logo圖+關注+聯繫我+返回頂部的浮層按鈕;
- 動態時鐘;
- 友情連接;
- 前端-博文列表頁
- manager可添加文章
- 展現文章標題、更新時間、文章做者、操做按鈕(manager展現-編輯、刪除、置頂)
- 文章編輯框:可存草稿(找控件實現?)
- 文章詳情頁:可評論留言、收藏文章、分享文章
- 默認按照更新時間排序從上至下;
- 標籤分類-側邊欄
- 頂tab分類,可返回首頁
- 前端-後臺管理
- 博文管理(增刪改查)
- 用戶管理(權限配置)
- 博文統計(PV及UV);
- 博客管理(友情連接配置)
後端-日誌統計:
- 用戶訪問量、用戶IP、文章PV/UV/分享量
- 實時保存文章更新信息(前端?)
- 定時任務備份數據
- 監控網站各系統運行狀態
- 後端-性能處理:
項目交互
項目設計
項目部署
- 使用docker方式部署,能夠採用-jar啓動;
- 整體採用springboot框架打包;利用SpringCloud進行微服務的分佈式開發;
- 技術框架:
-
本項目用到的技術和框架web
- 項目構建: maven
- web框架:spring boot
- 分佈式:SpringCloud
- 數據庫ORM:mybatis-plus(有分頁查詢)
- 數據庫鏈接池:Druid
- 數據庫:mysql
- 緩存NOSQL:redis
- 模板引擎:thymeleaf
- webjar:bootstrap
- 文章展現:使用commonmark,將markdown轉成html頁面
-
- 數據結構
- 用戶表 blog_users
- 文章表 blog_contents
- 標籤表 blog_tags
- 文章-標籤關係表 blog_ct_relation
項目開發
- 搭建分佈式框架,將各需求做爲微服務開發;
- 建立數據庫,關聯數據,設計service層,實現增刪改查;
- 找個開源UI框架作到前端展現,controller層的請求實現;
- 打包發佈
項目測試
功能測試
- 項目開發完成後進行單元測試;
- 發佈到test環境進行功能測試;
- 發佈至線上作輪訓測試;
項目發佈
發佈階段
- 本地作開發及單元測試;
- 發佈至test環境;
- 發佈至線上;