作了一些改造,增長了一些功能和一些代碼的重構,而且更換了博客主題。html
關於項目,對於開發的練手項目,可以工程化,嚴謹一些。java
關於文檔,本文主要中從項目需求,項目設計的方式來闡述.mysql
如何從零開始,使用springboot開發項目。git
記錄一些在開發過程當中遇到的一些問題,總結開發技巧 github
接下來,會以需求和設計方式來闡述web
首頁展現redis
文章編輯spring
文章管理sql
對於剛學習springboot的同窗,最好的就是拿一個項目練練手。在編碼過程當中遇到的問題並解決,這都是寶貴的經驗。 用springboot開發的博客系統,簡單並且實用,適合作練手項目。
管理主頁,記錄最新文章,最新留言,最近日誌等
發佈文章
文章管理
分類管理
文件管理
友情連接
系統設置
本項目用到的技術和框架
本項目的關鍵點
環境
熟悉spring開發的同窗,相信對此結構圖也並不陌生。平時的開發過程當中,結構設計是重要的緩解,特別是協做開發的時候,明細的分包,模塊化,可減小在git提交時的衝突。
本模塊主要介紹一些關鍵的業務流程。
發佈文章流程:
修改文章的流程大體上和發佈是類似的,這裏再也不贅述了
登陸流程
文件上傳
用戶表:t_users
用戶表主要管理後臺管理用戶。
文章表:t_contents
主要管理文章內容,外鍵爲cid
標籤表:t_metas
管理標籤信息,外鍵爲mid
文章標籤關係表:t_relationships
記錄文章和分類的關係,多對多表
首先,編寫sql語句,建立數據庫。
本項目的crud操做採用mybatis的逆向功能,對於特殊操做,須要本身手寫sql語句
springboot如何使用mybatis,以及mybatis的逆向工程,請參考springboot與mybatis
編寫service層,根據需求分析和概要設計,將具體業務轉成具體代碼
關於事務的使用,使用srping中的@Transactional,仍是很方便的
本流程的開發不是特別難,關鍵在於業務的實現
做爲一個後端開發,css的功力仍是有所欠缺的,因此也是用了妹子UI主題,和tale的後端頁面,大大減小了頁面的開發難度,特此感謝
頁面與後端的交換主要是在controller包中,springboot的頁面開發和springmvc是幾乎同樣的,@PostMapping和@GetMapping這兩個註解也是方便了開發。
統一的異常處理,使用@ControllerAdvice,定義異常頁面,設置自動跳轉500,404頁面。
攔截器,獲取http請求中的ip,判斷是否在黑名單(若是在,則禁止訪問系統)
該項目是在My blog基礎上修改的,修復了部分bug,增長添加黑白單功能,指定文章縮略圖
分析訪問量最多的數據,主要在於文章訪問部分,將文章放入redis緩存。每次編輯完文章後,更新緩存
天天定時發送郵件,彙報服務器運行狀態和最新日誌,手機便可查看。
使用阿里云云主機,藉助阿里雲自己防禦機制,
在主機中安裝denyhosts,對於嘗試暴力破解ssh的IP,實施封禁
對於評論部分,可以抵禦sql注入和xss攻擊
使用springboot自己測試方式,在集成測試以前,先進行單元測試
打包,使用springboot的mvn插件,打成jar包
以上是我學習springboot總結的一些博客,特此分享
喜歡的話,給個推薦,給個star鼓勵一下
若是有項目上的一些問題,可直接郵箱我 jantent@qq.com