李忠毅
(中山大學新華學院信息科學學院,東莞523133)
過去的日常交流論或者博客,后端大多使用JSP、SSH、SSM 技術(shù)進行實現(xiàn),基于這幾種技術(shù)實現(xiàn),無一例外都會遇到大問題:大量的.xml 文件使人眼花繚亂,對于建立個人論壇博客有極大的阻礙,如果使用Spring?Boot 進行后端技術(shù),可以做到零個.xml 文件,極大地降低了項目的復(fù)雜性,前端技術(shù)使用Bootstrap 和Thyme?leaf,實現(xiàn)前后端分離,MVC 架構(gòu)降低了前后端的耦合,是整個系統(tǒng)擁有高內(nèi)聚,低耦合的特性,Bootstrap 作為響應(yīng)性布局框架,使個人博客可以跨平臺使用,實現(xiàn)一套代碼適配多個平臺。
開發(fā)環(huán)境:JDK 1.8,Tomcat 服務(wù)器。
開發(fā)工具:后端開發(fā):IDEA 2020.1,前端開發(fā):WebStrom,數(shù)據(jù)庫:MySQL 5.7,數(shù)據(jù)庫可視化軟件:Navicate。
開發(fā)技術(shù):SpringBoot 后端技術(shù)、MyBatis、Boot?strap。
小型日常交流論壇的模塊有三個:登錄注冊模塊、用戶操作模塊、管理員模塊。
(1)用戶登錄注冊模塊
用戶可以在網(wǎng)頁進行登錄注冊功能,擁有登錄狀態(tài)的用戶才可以瀏覽帖子詳情,發(fā)新帖子,對帖子進行回復(fù),未登錄用戶只能在主頁瀏覽帖子的標題和作者。
(2)用戶的操作模塊
已經(jīng)登錄的用戶可以查看帖子,點贊帖子,搜索帖子,回復(fù)帖子,回復(fù)別人的回復(fù),點贊回復(fù),修改和刪除自己的帖子。此外還可以進行修改密碼,修改昵稱,修改個人信息,上傳頭像的操作。
(3)管理員模塊
管理員登錄后可以直接對所有的帖子進行刪除和修改操作,對所有賬號進行管理。
數(shù)據(jù)庫設(shè)計在動態(tài)網(wǎng)站的設(shè)計中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞會直接影響到應(yīng)用程序的運行效率。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計能夠提高數(shù)據(jù)讀取與存儲的效率,能夠保證數(shù)據(jù)的一致性和完整性。該系統(tǒng)的數(shù)據(jù)庫使用MySQL 來設(shè)計和實現(xiàn)[2]。
小型日常交流論壇需要用到4 個數(shù)據(jù)表:用戶表、帖子表、回復(fù)表、二次回復(fù)表,數(shù)據(jù)庫ER 圖如圖1所示。
圖1 數(shù)據(jù)庫的ER圖
(1)用戶表用于存放用戶id,用戶名,用戶密碼,頭像地址,sessionID,其中頭像地址為空時(用戶未上傳頭像)使用默認頭像,sessionID 用于保持登錄狀態(tài)。
(2)帖子表用于存放帖子id,帖子標題,帖子內(nèi)容,發(fā)帖人ID。
(3)回復(fù)表用于存放帖子id,回復(fù)id,評論人id,回復(fù)時間,評論內(nèi)容,修改時間,評論人姓名,評論的隨機id,點贊次數(shù),其中重要的是平人的隨機id,給每一條評論賦予唯一標識。
(4)二次回復(fù)表存放二次回復(fù)id,回復(fù)內(nèi)容,帖子id,創(chuàng)建時間,一級回復(fù)的隨機id,評論人姓名。
系統(tǒng)采用MVC 結(jié)構(gòu)進行實現(xiàn),對視圖層、模型層、控制層進行了分離,實現(xiàn)高內(nèi)聚低耦合的特點。其中,視圖層使用Bootstrap 進行設(shè)計和實現(xiàn),其跨平臺的特性能夠做到一套代碼多個平臺使用,極大減輕了開發(fā)者的負擔。模型層也是數(shù)據(jù)訪問層,進行對數(shù)據(jù)庫的查找、添加、修改和刪除,實現(xiàn)數(shù)據(jù)持久化操作。控制層實現(xiàn)了業(yè)務(wù)邏輯,對模型層進行控制,實現(xiàn)用戶的需求。
發(fā)帖功能是一個小型日常交流論壇的核心,用戶在登錄后即可獲得發(fā)帖功能。
發(fā)帖功能的代碼實現(xiàn)如下所示:
圖2 發(fā)帖功能流程圖
展示帖子也是論壇的核心功能,后端通過JDBC 操作數(shù)據(jù)庫獲取數(shù)據(jù)并實現(xiàn)分頁功能,通過model 方法給前端返回數(shù)據(jù),前端對數(shù)據(jù)進行循環(huán)遍歷,展示到主頁面上供用戶查看,核心代碼段如下:
圖3 展示帖子流程圖
小型日常交流論壇經(jīng)常會有用戶登錄,在Spring?Boot 中使用攔截器,可以便捷地通過cookie 保持用戶的登錄態(tài),減少用戶登錄次數(shù),方便用戶操作,提高了用戶體驗,下面為核心代碼段:
系統(tǒng)功能實現(xiàn)完成之后,需要進行各個模塊的測試。不僅是為了保障模塊能夠正常運行,還需要保障系統(tǒng)符合設(shè)計需求。
系統(tǒng)測試:
表1 測試環(huán)境搭建
在表1 的環(huán)境下,進行如下測試,得到表2。
表2 系統(tǒng)功能測試
本文使用了十分熱門的SpringBoot 后端技術(shù)和Bootstrap 前端技術(shù)搭建了小型日常交流論壇。基于這兩項技術(shù)搭建的論壇界面靈活、代碼量少、響應(yīng)速度快,極大地提高了程序員的開發(fā)效率。通過介紹需求分析、系統(tǒng)設(shè)計、數(shù)據(jù)庫設(shè)計、核心功能實現(xiàn),對基于SpringBoot 技術(shù)的平臺開發(fā)具有一定的參考意義。