【《基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》16000字】_第1頁(yè)
【《基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》16000字】_第2頁(yè)
【《基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》16000字】_第3頁(yè)
【《基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》16000字】_第4頁(yè)
【《基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》16000字】_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于springboot的博客系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要當(dāng)今社會(huì)是一個(gè)信息大爆炸的時(shí)代,科技的日新月異和人們快節(jié)奏的生活呈正比例增長(zhǎng),博客因?yàn)樗母叱杀拘砸仓饾u脫離了潮流,不被大眾所喜愛(ài)。但是博客用戶的減少并不意味著它已經(jīng)被時(shí)代所拋棄,相反它變得更為重要,對(duì)學(xué)習(xí)和研究更有價(jià)值。因?yàn)樯鐣?huì)發(fā)展需要新技術(shù)和思想推動(dòng),而博客就是普通大眾接觸和探討這些技術(shù)的平臺(tái),需要有人來(lái)維持這種積極研發(fā)的氛圍。從另一個(gè)角度來(lái)看,博客用戶的減少其實(shí)是一種篩選,選出了這個(gè)浮躁的社會(huì)還能靜心下來(lái)寫(xiě)文章的人,他們不斷創(chuàng)造高質(zhì)量的內(nèi)容服務(wù)社會(huì),對(duì)比網(wǎng)絡(luò)短視頻上的娛樂(lè)傾向視頻更有長(zhǎng)遠(yuǎn)的社會(huì)價(jià)值,更能被人們所記住他們的貢獻(xiàn)。所以一個(gè)好的博客網(wǎng)站雖然不一定受大眾歡迎,但一定有高水準(zhǔn)的人才愿意在這里交流探討學(xué)術(shù),為社會(huì)做出卓越的貢獻(xiàn)。本課題將研究并設(shè)計(jì)出一個(gè)適合IT技術(shù)研究者記錄并交流的網(wǎng)站,它可以幫研究者們記錄并歸納自己所學(xué)成果,方便技術(shù)創(chuàng)新和技術(shù)探討。該博客網(wǎng)站將會(huì)用java作為后端開(kāi)發(fā)語(yǔ)言,javaScript作為前端開(kāi)發(fā)語(yǔ)言,系統(tǒng)框架將采用目前市面上很火的springBoot框架,前端主要框架實(shí)現(xiàn)bootStrap3、themeLeaf引擎模板。數(shù)據(jù)庫(kù)選擇目前輕巧功能又強(qiáng)大的mySql。除了以上內(nèi)容,本論文還將從開(kāi)發(fā)背景、需求設(shè)計(jì)、功能實(shí)現(xiàn)、測(cè)試總結(jié)幾個(gè)方面闡述博客系統(tǒng)的具體構(gòu)建和實(shí)用性能。最后,也會(huì)對(duì)這個(gè)博客系統(tǒng)做出一些基于自己認(rèn)知的評(píng)價(jià)和對(duì)今后博客的發(fā)展說(shuō)一些自己的看法。關(guān)鍵詞:博客;社會(huì)價(jià)值;技術(shù)研究者;springBoot;themeLeaf

目錄TOC\o"1-3"\h\u30004第1章緒論 頁(yè)共56頁(yè)第1章緒論1.1選題的背景“博客”是由Blog翻譯來(lái)的,常被成為“網(wǎng)絡(luò)日志”。簡(jiǎn)單點(diǎn)來(lái)說(shuō),Blog就是一個(gè)簡(jiǎn)短、常更新的帖子或網(wǎng)頁(yè),其內(nèi)容是編寫(xiě)者的某些領(lǐng)域的想法和心得,包括時(shí)事新聞、娛樂(lè)看點(diǎn)、技術(shù)分析、生活哲學(xué)探討等等。進(jìn)入21世紀(jì)后,計(jì)算機(jī)技術(shù)的迅猛發(fā)展使得人與人之間的關(guān)系不再受地理位置和距離的限制,我們可以在網(wǎng)上瀏覽到各種外界信息,這些信息的傳遞方式最早是ICQ,E-Mail和BBS,后來(lái)博客的出現(xiàn)讓人們的思想交流更加方便和簡(jiǎn)單。在網(wǎng)絡(luò)上發(fā)表Blog的構(gòu)想始于1998年,但到了2000年才開(kāi)始真正流行。2000年博客開(kāi)始進(jìn)入中國(guó),并迅速發(fā)展,但都業(yè)績(jī)平平。2004年木子美事件,才讓中國(guó)民眾了解到博客,并運(yùn)用博客。2005年,國(guó)內(nèi)各門戶網(wǎng)站,如新浪、搜狐,本不看好博客業(yè)務(wù),也認(rèn)識(shí)到博客的重要性,開(kāi)始進(jìn)入博客陣營(yíng)。截至2013年,BSP商家風(fēng)起云涌,已有數(shù)十家大型博客站點(diǎn),新浪博客,網(wǎng)易博客,搜狐博客,騰訊博客,博客中國(guó)等[1]。目前博客已經(jīng)劃分為多個(gè)板塊,按功能可以分成基本博客和微型博客,按用戶分可分為個(gè)人博客和企業(yè)博客?;静┛褪侵傅木W(wǎng)絡(luò)上普通網(wǎng)民在相關(guān)博客網(wǎng)站上發(fā)布的一些文章,這些文章的內(nèi)容可以是軍事探討、科技分析、學(xué)術(shù)教育、娛樂(lè)新聞等等,基本涉及了人類目前認(rèn)知的所有領(lǐng)域。有一定字?jǐn)?shù)要求,基本一千字上下。微型博客例如新浪微博和騰訊微博,用于網(wǎng)民們對(duì)于現(xiàn)在快節(jié)奏生活的娛樂(lè)探討,基本上很少有學(xué)術(shù)探討在微博上。個(gè)人博客是現(xiàn)目前最火的一種,它的主體就是博主本身的內(nèi)容,記錄自己所發(fā)布的文章和圖片文檔,有點(diǎn)類似于部署于網(wǎng)絡(luò)上的日記,個(gè)人博客是現(xiàn)在百分之五十的程序員都會(huì)創(chuàng)建的網(wǎng)站,它不僅可以用于記錄自己的學(xué)習(xí)歷程,也可以成為向招聘方介紹自己的有力武器[7]。1.2國(guó)內(nèi)外現(xiàn)狀什么是博客?它與個(gè)人網(wǎng)站、門戶網(wǎng)頁(yè)、社區(qū)等有什么區(qū)別?最清晰的分界特點(diǎn)就是它的形式有所不同,即便展示相同的內(nèi)容給用戶,博客和網(wǎng)站所傾向的側(cè)重點(diǎn)還是有所不同的。首先博客有三大優(yōu)點(diǎn):常更改內(nèi)容、簡(jiǎn)潔大方、個(gè)性化。一開(kāi)始時(shí),網(wǎng)絡(luò)存在三大交流方式,分別是Email、BBS、ICQ[2]。這幾種方式各有各的局限性。Email例如qq郵箱,通知信息是一對(duì)一地發(fā)送,非常不方便,現(xiàn)在運(yùn)用在郵箱上的操作大概也只有企業(yè)通信了。BBC是電子通告版,例如貼吧那樣的形式,這個(gè)交流方式是由一個(gè)人發(fā)布一篇文章,下面的人跟帖的形式,適合海量用戶相互分享和交流事務(wù)和傳輸文件。ICQ就像qq一樣,擁有隨時(shí)隨地,方便快捷的溝通方式,適合熟人之間及時(shí)溝通。而博客,它的出現(xiàn)使得傳統(tǒng)的交流方式得到了補(bǔ)充,這一種新型的方式迅速在民眾之間擴(kuò)展開(kāi)來(lái),人們用它來(lái)分享知識(shí),記錄生活,以及對(duì)于特定的話題提供相關(guān)的資源,發(fā)表簡(jiǎn)短的評(píng)論。這些話題幾乎可以涉及人類的所有領(lǐng)域。博客有一項(xiàng)最有價(jià)值的功能,可以文字、圖片超鏈接。這就提供了一個(gè)很方便的跳轉(zhuǎn)點(diǎn)。人們可以從各種話題之間切換來(lái)回。博客以網(wǎng)絡(luò)作為載體,簡(jiǎn)易迅速便捷地發(fā)布個(gè)人心得,及時(shí)有效輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性平臺(tái)[3]。中國(guó)微型博客在2007年處于群雄爭(zhēng)霸期,市場(chǎng)參與者非常之多,博客網(wǎng)站已有幾十萬(wàn)個(gè),數(shù)量也有100多萬(wàn)個(gè),并且呈現(xiàn)每年百分之40速度遞增,著實(shí)令國(guó)人心動(dòng)不已[5]。那么博客經(jīng)濟(jì)能帶來(lái)什么?能改變中國(guó)人的生活和思維方式?美國(guó)微型博客市場(chǎng)目前處于市場(chǎng)快速發(fā)展階段。美國(guó)微型博客市場(chǎng)的特征是用戶市場(chǎng)高速增長(zhǎng),用戶、市場(chǎng)占有率日趨明朗,市場(chǎng)進(jìn)入障礙提升,即便如此,美國(guó)的微型博客仍面臨根本的問(wèn)題,即商業(yè)模式的問(wèn)題,尤其是面對(duì)個(gè)人用戶市場(chǎng)的微型博客,尋找有效的商業(yè)模式仍成為其發(fā)展面臨的重要問(wèn)題,當(dāng)然,中國(guó)微型博客的發(fā)展也將會(huì)遇到同樣的問(wèn)題[5]。時(shí)至今日中國(guó)的博客大部分在垂死邊緣掙扎,目前國(guó)內(nèi)的博客多半以依附的形式存在,大部分人是在網(wǎng)上已經(jīng)開(kāi)發(fā)好的博客系統(tǒng)里創(chuàng)建文章,對(duì)此相關(guān)管理者也以“名人博客”之類的概念吸引人們?nèi)g覽和創(chuàng)作。此外,國(guó)內(nèi)大部分博客托管服務(wù)商都沒(méi)有支持開(kāi)放接口,也不支持Zoundry(網(wǎng)志編輯器)[4],總而言之國(guó)內(nèi)很多博客都有限制。還有一個(gè)重要的點(diǎn)在于博客網(wǎng)站的內(nèi)容抄襲嚴(yán)重,廣告繁多。當(dāng)然好的博客創(chuàng)作地還是有的,例如博客園、微信公眾號(hào)、簡(jiǎn)書(shū)。國(guó)外的專業(yè)博主一般采用自建網(wǎng)站來(lái)創(chuàng)作,秉持著“我的博客我做主”的觀點(diǎn)自由開(kāi)發(fā),玩法也不受限制,相對(duì)來(lái)說(shuō)國(guó)外的博客創(chuàng)作氛圍要好得多。1.3課題研究意義博客系統(tǒng)的意義在于為人們提供一個(gè)思想交流和碰撞的平臺(tái),以及作為存儲(chǔ)知識(shí)和技術(shù)的數(shù)據(jù)倉(cāng)庫(kù),方便人們尋找答案和創(chuàng)新技術(shù),以下是詳細(xì)闡述的博客意義:1.在今天這個(gè)信息技術(shù)極度發(fā)達(dá)的時(shí)代,人與人的交流和分享尤其重要。俗話說(shuō)得好:三天不接觸網(wǎng)絡(luò),你就已經(jīng)落后時(shí)代的腳步了,所以我們現(xiàn)在的生活離不開(kāi)網(wǎng)絡(luò)社交?,F(xiàn)在博客就提供了一個(gè)很好的信息交流平臺(tái),每個(gè)人都可以在互聯(lián)網(wǎng)上自由發(fā)表個(gè)人意見(jiàn)和見(jiàn)解,當(dāng)然個(gè)人自由表達(dá)只是其中一個(gè)意義。2.愛(ài)學(xué)習(xí)的人總有記日記的習(xí)慣,它可以讓人時(shí)刻溫習(xí)不會(huì)忘卻,博客就是記錄自己所學(xué)知識(shí)最好的地方,這里不僅可以讓自己不斷進(jìn)步,也能把自己所學(xué)知識(shí)共享給其他人,實(shí)現(xiàn)知識(shí)庫(kù)的擴(kuò)充。3.博客也是深度交流和溝通的網(wǎng)絡(luò)新方式,一種特殊的語(yǔ)言,它可以用于交友、展示個(gè)人、抒發(fā)感情的地方,它的出現(xiàn)標(biāo)志著互聯(lián)網(wǎng)的進(jìn)步。4.一個(gè)好的博客網(wǎng)站會(huì)嚴(yán)格審查文章的重復(fù)性和專業(yè)性,有了這些作為前提,網(wǎng)絡(luò)知識(shí)的價(jià)值才能得以提升。5.博客可以用來(lái)展示自己,技術(shù)崗位招聘者通常會(huì)在意應(yīng)聘者有沒(méi)有寫(xiě)博客的習(xí)慣,會(huì)去瀏覽相應(yīng)文章和作品。1.4系統(tǒng)開(kāi)發(fā)目標(biāo) 本系統(tǒng)將實(shí)現(xiàn)前臺(tái)和后臺(tái)獨(dú)立登錄,前臺(tái)用于博主的文章展示和游客大眾的評(píng)論留言,后臺(tái)用于博主對(duì)文章、文件以及其他雜物的管理。前臺(tái)的游客可以不用登錄就能訪問(wèn)到首頁(yè),后臺(tái)博主發(fā)布文章后可在特殊的評(píng)論管理系統(tǒng)上管理自己文章的評(píng)論。 此博客系統(tǒng)面向于廣大IT技術(shù)研發(fā)者,希望能在這里集合更多愛(ài)學(xué)習(xí)愛(ài)鉆研編程技術(shù)的程序員,打造一個(gè)無(wú)廣告污染,單純用于編程技術(shù)的研究和筆記記錄的社區(qū)網(wǎng)站。1.5系統(tǒng)概述 我研究的博客系統(tǒng)按功能劃分屬于專業(yè)技術(shù)類個(gè)人博客,嚴(yán)禁發(fā)生抄襲和非專業(yè)內(nèi)容出現(xiàn)。另外為了方便游客查看博主的歷史文章,本系統(tǒng)還實(shí)現(xiàn)了歷史歸檔的功能,可以讓游客們更容易了解博主的研究方向。后臺(tái)管理有專門的數(shù)據(jù)統(tǒng)計(jì)頁(yè)面,記錄了創(chuàng)建文章個(gè)數(shù),最新文章預(yù)覽窗口,日志預(yù)覽窗口等等數(shù)據(jù)指標(biāo)。此外還有獨(dú)立的文章管理模塊、頁(yè)面管理模塊、附件管理模塊、用戶管理模塊、系統(tǒng)設(shè)置模塊。由這些模塊組成一個(gè)完整的博客管理系統(tǒng),可以讓擁有不同個(gè)人博客的博主在一起分享自己的界面鏈接和論點(diǎn)看法。第2章系統(tǒng)分析與功能概述2.1可行性分析2.1.1技術(shù)分析 現(xiàn)目前市面上開(kāi)發(fā)網(wǎng)站的后端技術(shù)種類繁多,我選擇了比較熱門的springboot框架。springboot是spring家族的一員,spring的ioc(依賴注入)的容器aop,解決了面向橫切面的編程[12]。于是在此基礎(chǔ)上產(chǎn)生出用于開(kāi)發(fā)web應(yīng)用的springMVC框架,它是基于Servlet層的,由于spring的配置非常復(fù)雜,XML、javaConfig等等處理步驟繁瑣,為了簡(jiǎn)化開(kāi)發(fā)者的使用,創(chuàng)造性地推出了springboot。Springboot實(shí)現(xiàn)自動(dòng)配置,僅需一個(gè)yaml文件即可解決所有配置問(wèn)題,極大降低了項(xiàng)目環(huán)境搭建的難度[10]。此外這項(xiàng)技術(shù)還有重要的功能就是內(nèi)置Tomcat服務(wù)器,也省去了配置運(yùn)行服務(wù)器的麻煩。 原本開(kāi)發(fā)項(xiàng)目與數(shù)據(jù)庫(kù)交互的動(dòng)作是通過(guò)JDBC來(lái)完成的,但是MyBatis的出現(xiàn)使得項(xiàng)目開(kāi)發(fā)不需要JDBC那種復(fù)雜冗余的代碼來(lái)實(shí)現(xiàn)。MyBatis是一個(gè)支持sql查詢、存儲(chǔ)過(guò)程以及高級(jí)映射的持久層框架,使用簡(jiǎn)單的XML或注解配置和映射,將java的pojo層對(duì)象映射成數(shù)據(jù)庫(kù)字段,使得開(kāi)發(fā)者可以使用面向?qū)ο蟮乃季S進(jìn)行操作數(shù)據(jù)庫(kù)[13]。圖2-1數(shù)據(jù)庫(kù)映射關(guān)系圖 Thymeleaf是用于web和獨(dú)立環(huán)境的現(xiàn)代服務(wù)器端java模板引擎[11]??捎糜诰帉?xiě)動(dòng)態(tài)頁(yè)面,相較于傳統(tǒng)的jsp技術(shù),它可以讓開(kāi)發(fā)者完全在后端實(shí)現(xiàn)數(shù)據(jù)處理,前端不用寫(xiě)java代碼,達(dá)成前后端代碼分離。另外,Thymeleaf模板引擎也是springboot默認(rèn)且強(qiáng)推的一款技術(shù),不需要其他配置,打jar包也不需要配置。 當(dāng)前博客最主要的還是以PHP,ASP和JAVA技術(shù)為主。三種技術(shù)中,相比之下,JAVA具有一次編寫(xiě)到處到處運(yùn)行,系統(tǒng)多平臺(tái)支持,強(qiáng)大的可伸縮性,多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持等強(qiáng)勢(shì)[6]。2.1.2市場(chǎng)分析 軟件管理架構(gòu)C/S(客戶端/服務(wù)器)和B/S(瀏覽器/服務(wù)器)是當(dāng)今軟件開(kāi)發(fā)所流行的[8]。大部分博客系統(tǒng)都是基于B/S的架構(gòu),因?yàn)樗鼧O大簡(jiǎn)化了客戶端電腦負(fù)載,減輕了系統(tǒng)升級(jí)和維護(hù)的成本與工作量,降低了用戶總體成本。B/S是經(jīng)過(guò)市場(chǎng)長(zhǎng)期篩選和演變,從C/S改進(jìn)而來(lái)的,這種架構(gòu)下用戶工作通過(guò)www瀏覽器實(shí)現(xiàn)。同時(shí)它是一次性到位的開(kāi)發(fā),成本也低,能以不同接入方式訪問(wèn)和操作公共的數(shù)據(jù)庫(kù),也能很好地保護(hù)數(shù)據(jù)和管理訪問(wèn)權(quán)限,提高了數(shù)據(jù)庫(kù)的安全性[9]。所以本次系統(tǒng)開(kāi)發(fā)會(huì)用B/S架構(gòu),所參與的客戶人員分為游客、博主兩個(gè)身份。2.1.3管理維護(hù)分析 現(xiàn)在大部分成熟的博客系統(tǒng)也轉(zhuǎn)向web開(kāi)發(fā),在Internet的應(yīng)用也變得非常廣泛,并且web端開(kāi)發(fā)有個(gè)很好的優(yōu)點(diǎn)就是游覽器端人工維護(hù)人員成本可降低很多,技術(shù)硬性要求也有所下降,不必需要很專業(yè)的人才來(lái)管理項(xiàng)目后臺(tái)。 服務(wù)器端的維護(hù)和升級(jí)就要稍微復(fù)雜點(diǎn),因?yàn)閖ava語(yǔ)言書(shū)需要經(jīng)過(guò)編譯的,生成class字節(jié)碼文件才能執(zhí)行。這里我用的是xShell和xFtp軟件進(jìn)行服務(wù)器代碼更新管理,每添加一次java端的servlet層代碼,就要重新編譯然后將生成的對(duì)應(yīng)新增的class文件傳輸?shù)椒?wù)器。2.2軟件需求分析 該博客系統(tǒng)主要面向于博主寫(xiě)文章然后管理的方向,所以前臺(tái)會(huì)設(shè)計(jì)得比較簡(jiǎn)略,著重在后臺(tái)的設(shè)計(jì)上。系統(tǒng)角色分為游客和博主,不同角色所擁有的訪問(wèn)權(quán)限和操作權(quán)限是不同的。游客權(quán)限從百度首頁(yè)或者貼吧或者其他地方推薦過(guò)來(lái),可訪問(wèn)博主的所有文章,然后可在文章下評(píng)論發(fā)表自己的觀點(diǎn)與作者討論,可在友鏈下留下自己的信息,方便博主能訪問(wèn)你的博客或是郵箱。博主權(quán)限通過(guò)注冊(cè)然后登錄博客系統(tǒng),就可以成為博主。可以寫(xiě)文章,管理文章,新建頁(yè)面,管理頁(yè)面,管理菜單的增加和減少,新建標(biāo)簽,管理標(biāo)簽,新建文章類別,管理文章類別。網(wǎng)頁(yè)鏈接管理,博客系統(tǒng)的設(shè)置管理,對(duì)自己信息的一些管理,文檔管理。2.2.1用例需求分析用例圖是屬于UML之中的一種,用于描述用戶和功能模塊之間的一些聯(lián)系和操作方式,在設(shè)計(jì)一個(gè)軟件項(xiàng)目時(shí)這是必不可少的一部分。游客訪問(wèn)博客用例:(1)查看文章(2)訪問(wèn)標(biāo)簽(3)編輯個(gè)人匿名信息(4)發(fā)表留言(5)訪問(wèn)首頁(yè)其他頁(yè)面(6)全站搜索。圖2-2游客需求用例圖2.博主管理博客用例:(1)用戶登錄(2)個(gè)人信息修改(3)博客重要信息預(yù)覽(4)文章編寫(xiě)(5)文章維護(hù)(6)分類管理(7)標(biāo)簽管理(8)頁(yè)面新增(9)頁(yè)面維護(hù)(10)附件管理(11)菜單路徑管理(12)網(wǎng)站鏈接管理(13)博客設(shè)置圖2-3博主需求用例圖2.2.2數(shù)據(jù)流分析游客操作數(shù)據(jù)流圖如下所示:圖2-4游客流程圖博主操作數(shù)據(jù)流圖如下所示:圖2-5博主流程主圖圖2-5儀表盤流程圖圖2-6文章流程圖圖2-7頁(yè)面流程圖圖2-7附件流程圖圖2-7菜單流程圖圖2-8用戶流程圖圖2-9博客設(shè)置流程圖2.2.3功能概覽本課題研究的博客系統(tǒng)的功能板塊分為四大板塊,如下表所示。功能類別功能名稱、標(biāo)識(shí)符描述登錄模塊博主登錄通過(guò)輸入用戶名和密碼進(jìn)行登陸注銷賬戶通過(guò)注銷按鈕退出登錄前臺(tái)信息展示首頁(yè)文章展示可以瀏覽博主寫(xiě)的所有已發(fā)布文章歸檔文章展示可以按照時(shí)間順序看到博主的文章全站搜索模糊查詢博主寫(xiě)的所有文章友鏈信息展示可看到博主的一些信息和擁有的鏈接后臺(tái)管理模塊文章管理博主可進(jìn)行保存草稿、編輯、發(fā)布、放入回收站,還原,刪除標(biāo)簽管理用于標(biāo)識(shí)文章,可進(jìn)行新增,修改,刪除分類管理用于文章的分類,可進(jìn)行新增,修改,刪除頁(yè)面管理用于放置在前臺(tái)的頁(yè)面,可進(jìn)行新增,修改,刪除附件管理用于存儲(chǔ)整個(gè)博客所用到的圖片,可進(jìn)行上傳,刪除菜單管理用于整理前臺(tái)顯示的菜單,可修改路徑,能把新增的頁(yè)面也加上去友鏈管理用來(lái)存放自己常用或喜歡的網(wǎng)站鏈接,并在前臺(tái)展示給別人看博客設(shè)置用于對(duì)系統(tǒng)一些基礎(chǔ)的設(shè)置博客信息展示儀表盤展示你寫(xiě)了多少文章,存了多少圖片,擁有多少友鏈,博客從注冊(cè)到現(xiàn)在有多少天了,登錄的日志信息等等個(gè)人資料展示你的用戶名、顯示名、頭像、郵箱,可在這里修改密碼表2-1系統(tǒng)功能模塊2.3硬件及開(kāi)發(fā)軟件需求1.硬件方面所需如下。電腦配置: 系統(tǒng):window10教育版 處理器:Intel(R)Core(TM)i5-7300HQCPU@2.50GHZ 內(nèi)存:4GB自帶+4GB內(nèi)存條 系統(tǒng)類型:64位操作系統(tǒng),基于X64處理器網(wǎng)線光纜,辦公環(huán)境自擬,開(kāi)發(fā)系統(tǒng)的計(jì)算機(jī)最好不要配置過(guò)低,否則帶動(dòng)不了項(xiàng)目運(yùn)行測(cè)試和界面渲染 2.軟件工具所需如下。 軟件開(kāi)發(fā)集成工具:idea2020.3 此工具自帶Maven項(xiàng)目管理包、springboot框架、tomcat服務(wù)器; MySql數(shù)據(jù)庫(kù)環(huán)境:WampServer集成環(huán)境 這個(gè)軟件自帶MySql、Windows、PHP、ApacheServer的工作環(huán)境; 數(shù)據(jù)庫(kù)管理工具:NavicatPremium15 這是目前非常好用的一款數(shù)據(jù)庫(kù)管理工具,圖形化地向用戶展示數(shù)據(jù)庫(kù)的存儲(chǔ)情況; 原型圖構(gòu)建工具:AxureRP9 非常好的一款原型圖設(shè)計(jì)工具,企業(yè)里也經(jīng)常用到它來(lái)設(shè)計(jì)大型項(xiàng)目界面; 前端代碼測(cè)試BUG工具:chrome 被稱為程序員開(kāi)發(fā)必備神器,可以高效快速定位前端代碼問(wèn)題所在。第3章系統(tǒng)設(shè)計(jì)3.1代碼層級(jí)結(jié)構(gòu) 本博客系統(tǒng)將會(huì)使用SpringBoot框架進(jìn)行開(kāi)發(fā)設(shè)計(jì),代碼結(jié)構(gòu)分為后端java和前端resources,Java后端分為config(系統(tǒng)框架配置)、mapper(sql查詢接口)、model(數(shù)據(jù)實(shí)例化對(duì)象和枚舉)、service(事務(wù)處理接口和實(shí)現(xiàn))、util(系統(tǒng)通用的工具類)、web(前端控制器和攔截器)。為了將更好開(kāi)發(fā)項(xiàng)目,我將前端resources細(xì)化為generator(mybatis的xml配置文件)、mapper(sql語(yǔ)句的配置文件)、static(系統(tǒng)用到的插件、js、css和圖片資源)、templates(html頁(yè)面)。 Config(系統(tǒng)框架配置):創(chuàng)建springboot項(xiàng)目自動(dòng)配置的代碼,完成系統(tǒng)加載設(shè)置項(xiàng)、菜單。其中thymeleaf引擎模板是服務(wù)于前臺(tái)數(shù)據(jù)展示。還有一些啟動(dòng)項(xiàng)參數(shù)和類的配置、文件資源的配置。mapper(sql查詢接口):用于定義sql的查詢語(yǔ)句的接口,連接到resources里的mapper里xml文件; model(數(shù)據(jù)實(shí)例化對(duì)象和枚舉):此層用于對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作和數(shù)據(jù)持久化,特點(diǎn)在于可以重復(fù)利用,易于維護(hù)、創(chuàng)建,可移植到其他平臺(tái)使用;service(事務(wù)處理接口和實(shí)現(xiàn)):由于java是一款支持單繼承類、多借口繼承的語(yǔ)言,所在在需要實(shí)現(xiàn)一個(gè)類需要多個(gè)事務(wù)支持時(shí)就可以用多接口來(lái)實(shí)現(xiàn),同時(shí)定義接口也可以清晰地知道事務(wù)的內(nèi)容和數(shù)量,通常是controller層調(diào)用它,它又去使用model里定義的類來(lái)調(diào)用mapper里的接口;util(系統(tǒng)通用的工具類):封裝了系統(tǒng)的常用工具類,比如對(duì)數(shù)據(jù)的處理,獲取時(shí)間的類方法,異常報(bào)錯(cuò)的處理方法定義,緩存的方法,推送給百度url進(jìn)行站點(diǎn)驗(yàn)證的方法等等……web(前端控制器和攔截器):里面包含controller控制層和interceptor攔截器,前者是用來(lái)響應(yīng)前端發(fā)送的get和post請(qǐng)求,然后處理并返回?cái)?shù)據(jù)給前端;后者是用來(lái)攔截未登錄的用戶直接通過(guò)url訪問(wèn)后臺(tái)界面;generator(mybatis的xml配置文件):用context標(biāo)簽配置mybatis的連接屬性,model類的存放位置,sql編寫(xiě)的xml文件存放位置;mapper(sql語(yǔ)句的配置文件):定義了前臺(tái)和后臺(tái)所有數(shù)據(jù)查詢sql;static(系統(tǒng)用到的插件、js、css和圖片資源):本項(xiàng)目所用到的插件(bootstrap3、toast、字體、layer、vali)和自定義的css、js、圖片等等資源存放地;templates(html頁(yè)面):分為前臺(tái)和后臺(tái)還有錯(cuò)誤三種html界面,內(nèi)嵌thymeleaf渲染數(shù)據(jù)。圖3-1博客系統(tǒng)代碼層次圖3.2模塊設(shè)計(jì)3.2.1登錄模塊設(shè)計(jì) 1.博主登錄 博主訪問(wèn)網(wǎng)站進(jìn)行登錄,系統(tǒng)后臺(tái)存入賬戶信息。其中博主有五次輸入驗(yàn)證的機(jī)會(huì),如果五次輸入賬戶密碼與數(shù)據(jù)庫(kù)內(nèi)的不符合,就會(huì)鎖定設(shè)備輸入十分鐘。登錄成功后就會(huì)進(jìn)入后臺(tái)管理的界面。3.2.2前臺(tái)設(shè)計(jì) 1.首頁(yè) 游客和博主都可以瀏覽的界面,文章顯示數(shù)量可在后臺(tái)進(jìn)行設(shè)置,用戶可點(diǎn)擊左上角的“請(qǐng)登錄”跳轉(zhuǎn)到登錄界面,如果是已經(jīng)登錄的用戶可直接跳轉(zhuǎn)到后臺(tái)界面;用戶可點(diǎn)擊文章中的標(biāo)簽,跳轉(zhuǎn)到標(biāo)簽對(duì)應(yīng)的鏈接;右上角有搜索功能可供用戶進(jìn)行全站搜索。2.歸檔以時(shí)間順序從上到下排列文章,可以讓用戶清晰地知道文章的時(shí)間順序。 3.友鏈 博主收藏的網(wǎng)站鏈接,編寫(xiě)的博客系統(tǒng)信息可在這里查看到,對(duì)博主有興趣的伙伴可在下方評(píng)論留下自己的信息,以便博主看到。 4.文章 排版分為標(biāo)題,文章信息,文章正文,文章說(shuō)明。從上到下排列,文章信息需要展示文章發(fā)布時(shí)間、標(biāo)簽和瀏覽量。3.2.3后臺(tái)文章管理設(shè)計(jì) 1.文章管理 此功能板塊分為“所有文章”、“寫(xiě)文章”、“分類”、“標(biāo)簽”四個(gè)功能模塊。 在所有文章內(nèi),把文章又分為三種狀態(tài):已發(fā)布、草稿、回收站。在已發(fā)布的文章里可以到前臺(tái)去查看文章,可以編輯文章內(nèi)容,也可以文章丟棄放入回收站;在草稿里的文章可以進(jìn)行發(fā)布操作,編輯內(nèi)容,或者丟棄;在回收站里的文章可進(jìn)行復(fù)原,徹底刪除。 在寫(xiě)文章里,博主可以編輯文章標(biāo)題,文章說(shuō)明,文章內(nèi)容,是否原創(chuàng),是否開(kāi)啟評(píng)論,文章分類和標(biāo)題進(jìn)行下拉選擇,文章縮略圖進(jìn)行選擇,如果不選則使用系統(tǒng)默認(rèn)圖片,填寫(xiě)文章摘要。最后編輯完成后即可進(jìn)行保存草稿或者直接發(fā)布,注意:文章標(biāo)題和內(nèi)容為空則不能發(fā)布和保存。 在分類里可以添加新的分類,輸入分類名稱,路徑以及描述進(jìn)行保存;可以修改和刪除已有的分類。 在標(biāo)簽里可以添加新的標(biāo)簽,輸入名稱和路徑然后保存,可以修改和刪除已有的標(biāo)簽。 2.頁(yè)面管理 此功能板塊“新建頁(yè)面”、“所有頁(yè)面”兩個(gè)功能板塊。 在新建頁(yè)面里,博主可以輸入頁(yè)面標(biāo)題,頁(yè)面路徑,頁(yè)面內(nèi)容,是否開(kāi)啟評(píng)論和選擇頁(yè)面縮略圖,和文章不同的地方在于,頁(yè)面創(chuàng)建之后可以通過(guò)菜單管理加到前臺(tái)菜單欄里。 在所有頁(yè)面中可以查看頁(yè)面,編輯頁(yè)面和刪除頁(yè)面。 3.附件管理 這里存放整個(gè)博客系統(tǒng)要用到的圖片,比如頭像,文章縮略圖,頁(yè)面縮略圖等??梢渣c(diǎn)擊某個(gè)圖片查看詳細(xì)信息,在詳細(xì)信息界面可復(fù)制圖片URL,可刪除圖片。上傳圖片支持多個(gè)圖片上傳和拖動(dòng)圖片上傳模式,圖片選擇好了后點(diǎn)擊上傳即可,也可以取消選擇的圖片。 4.菜單管理 這里可以維護(hù)前臺(tái)已有的菜單項(xiàng),也可新增菜單到前臺(tái)去??奢斎氲膬?nèi)容有名稱,路徑,排序編號(hào),圖標(biāo)。打開(kāi)方式支持當(dāng)前窗口和新窗口??尚薷囊延胁藛蔚膶傩裕部蓜h除。 5.用戶管理 這里是編輯博主個(gè)人信息和友鏈管理的地方。 在個(gè)人資料里面博主可以修改用戶名,顯示名,郵箱,頭像以及個(gè)人說(shuō)明。也可修改密碼,修改密碼要求輸入原密碼,輸入兩次新密碼,系統(tǒng)會(huì)檢驗(yàn)原密碼是否正確。 在友情鏈接里可以添加新的鏈接,可輸入內(nèi)容有網(wǎng)站名稱,網(wǎng)址,圖片LOGO,描述。在這里的友鏈會(huì)展示到前臺(tái)去,路過(guò)的游客都可以看到。也可直接在這里訪問(wèn)鏈接的網(wǎng)站,修改和刪除鏈接 6.博客設(shè)置針對(duì)整個(gè)博客系統(tǒng)的一些設(shè)置,有常規(guī)設(shè)置、SEO設(shè)置、文章設(shè)置、評(píng)論設(shè)置、郵箱設(shè)置。常規(guī)設(shè)置主要是設(shè)置博客的標(biāo)題、地址、首頁(yè)的LOGO、頁(yè)面圖標(biāo)、頁(yè)腳的信息。SEO設(shè)置主要是關(guān)鍵詞(多個(gè)用英文逗號(hào)隔開(kāi)),博客描述,百度站點(diǎn)上獲取的token。文章設(shè)置主要是首頁(yè)展示條數(shù)、RSS展示的條數(shù)、文章摘要的字?jǐn)?shù)。評(píng)論用的兩個(gè)插件,gittalk和valine,設(shè)置獲取的appid和key,頭像和內(nèi)容框?yàn)榭諘r(shí)的默認(rèn)內(nèi)容。3.2.4后臺(tái)數(shù)據(jù)展示設(shè)計(jì)1.儀表盤用于展示博客系統(tǒng)的一些重要指標(biāo)。例如所擁有的文章數(shù)量、友情鏈接數(shù)量、文件數(shù)量、注冊(cè)到現(xiàn)在的時(shí)間天數(shù)。同時(shí)要展示最新文章的信息,包括標(biāo)題、狀態(tài)、時(shí)間。登錄博客的日志信息,包括事件(進(jìn)行什么操作)、時(shí)間、ip、操作結(jié)果,可以刪除所有日志。3.3數(shù)據(jù)庫(kù)設(shè)計(jì)3.3.1數(shù)據(jù)庫(kù)整體概述本數(shù)據(jù)庫(kù)使用mysql技術(shù),管理整個(gè)系統(tǒng)存儲(chǔ)的信息。Mysql數(shù)據(jù)庫(kù)又稱關(guān)系型數(shù)據(jù)庫(kù),它最顯著的優(yōu)點(diǎn)就是體積小、速度快、總體擁有成本低,代碼開(kāi)源的特點(diǎn)[14]。該數(shù)據(jù)庫(kù)最適合做博客系統(tǒng)這一類數(shù)據(jù)存儲(chǔ)量比較小的項(xiàng)目,在項(xiàng)目運(yùn)行中可以體現(xiàn)它的高性能。Myblog所建立的數(shù)據(jù)庫(kù)包含十二個(gè)表,其中文章表和標(biāo)簽、分類表通過(guò)間接表相關(guān)聯(lián)。整個(gè)系統(tǒng)E-R圖如下所示:3.3.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)博主:用戶id(主鍵)、用戶狀態(tài)(用于判斷是否處于禁止登錄)、登錄失敗次數(shù)、最后登錄時(shí)間、頭像(圖片的外鍵)、說(shuō)明、顯示名稱、郵箱、用戶名、密碼標(biāo)簽:標(biāo)簽id(主鍵)、標(biāo)簽名、標(biāo)簽路徑分類:分類id(主鍵)、分類名、分類路徑、說(shuō)明文章:文章id(主鍵)、文章內(nèi)容、發(fā)布時(shí)間、文章?tīng)顟B(tài)、文章摘要、縮略圖(圖片外鍵)、文章標(biāo)題、文章類型、文章post(區(qū)分頁(yè)面)、文章評(píng)論、文章最后修改時(shí)間、文章路徑、流量統(tǒng)計(jì)文章-標(biāo)簽:文章id、標(biāo)簽id文章-分類:文章id、分類id附件:附件id(主鍵)、圖片名、圖片路徑、縮略圖、圖片類型、上傳時(shí)間、文件大小、后綴、尺寸友鏈:友鏈id(主鍵)、友鏈名稱、友鏈路徑、友鏈LOGO、描述日志:日志id(主鍵)、日志標(biāo)題、日志內(nèi)容、登錄ip、登錄時(shí)間設(shè)置:操作功能名、存儲(chǔ)內(nèi)容菜單:菜單id(主鍵)、菜單圖標(biāo)、菜單名稱、排序、打開(kāi)方式、菜單路徑圖3-2博客系統(tǒng)E-R圖3.3.3數(shù)據(jù)表設(shè)計(jì)以下是數(shù)據(jù)表詳細(xì)設(shè)計(jì)內(nèi)容,包含數(shù)據(jù)字段、類型、注釋等信息:表3-1用戶信息表(myBlog_user)表名myBlog_user列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明user_idint(11)NOTNULLPRIMARYKEY用戶IDuser_namevarchar(255)NULL用戶名user_pwdvarchar(255)NULL密碼login_last_timedatetime(0)NULL最后登錄時(shí)間user_emailvarchar(255)NULL郵箱user_display_namevarchar(255)NULL顯示名稱user_explainvarchar(255)NULL說(shuō)明user_portraitvarchar(255)NULL頭像login_enablevarchar(255)NULL是否禁用登錄login_errorint(11)NULL登錄失敗次數(shù)補(bǔ)充說(shuō)明表3-2文章表(myBlog_article)表名myBlog_article列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明idint(11)NOTNULLPRIMARYKEY文章IDuser_idint(11)NULL發(fā)表用戶的idarticle_contentlongtextNULL文章內(nèi)容article_content_mdlongtextNULL文章內(nèi)容mdarticle_newstimedatetimeNULL發(fā)布時(shí)間article_statusint(11)NULL文章?tīng)顟B(tài)(0發(fā)布1草稿2回收站)article_summaryvarchar(255)NULL文章摘要article_thumbnailvarchar(255)NULL縮略圖article_titlevarchar(255)NULL文章標(biāo)題article_typeint(11)NULL文章類型(0原創(chuàng)1轉(zhuǎn)載)article_postvarchar(255)NULLPost為文章,page為頁(yè)面article_commentInt(11)NULL是否開(kāi)啟評(píng)論(0開(kāi)啟1關(guān)閉)article_updatetimedatetimeNULL最后修改時(shí)間article_urlVarchar(255)NULL文章路徑article_viewsBigint(20)NULL訪問(wèn)量補(bǔ)充說(shuō)明表3-3文章-分類關(guān)系表(myBlog_article_category)表名myBlog_article_category列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明article_idint(11)NOTNULL文章IDcategory_idBigint(20)NOTNULL分類id補(bǔ)充說(shuō)明表3-4文章-標(biāo)簽關(guān)系表(myBlog_article_tag)表名myBlog_article_tag列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明article_idint(11)NOTNULL文章IDtag_idBigint(20)NOTNULL標(biāo)簽id補(bǔ)充說(shuō)明表3-5圖片表(myBlog_attachment)表名myBlog_attachment列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明Idint(11)NOTNULLPRIMARYKEY用戶IDpicture_namevarchar(255)NULL圖片名稱picture_pathvarchar(255)NULL圖片路徑picture_small_pathvarchar(255)NULL縮略圖picture_typevarchar(255)NULL圖片類型picture_create_datevarchar(255)NULL上傳時(shí)間picture_sizevarchar(255)NULL文件大小picture_suffixvarchar(255)NULL后綴picture_whvarchar(255)NULL尺寸補(bǔ)充說(shuō)明表3-6分類表(myBlog_category)表名myBlog_category列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明category_idint(11)NOTNULLPRIMARYKEY分類idcategory_namevarchar(255)NULL分類名稱category_urlvarchar(255)NULL路徑category_describevarchar(255)NULL描述補(bǔ)充說(shuō)明表3-7友鏈表(myBlog_link)表名myBlog_link列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明link_idint(11)NOTNULLPRIMARYKEY鏈接IDlink_namevarchar(255)NULL鏈接名稱link_urlvarchar(255)NULL路徑link_logovarchar(255)NULL鏈接logolink_describevarchar(255)NULL描述補(bǔ)充說(shuō)明表3-8日志表(myBlog_logs)表名myBlog_logs列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明log_idint(11)NOTNULLPRIMARYKEY日志IDlog_titlevarchar(255)NULL標(biāo)題log_contentvarchar(255)NULL內(nèi)容log_ipvarchar(255)NULLIplog_datedatetime(0)NULL時(shí)間補(bǔ)充說(shuō)明表3-9菜單表(myBlog_menu)表名myBlog_menu列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明menu_idint(11)NOTNULLPRIMARYKEY菜單IDmenu_iconvarchar(255)NULL菜單圖標(biāo)menu_namevarchar(255)NULL菜單名稱menu_sortint(11)NULL排序menu_targetvarchar(255)NULL打開(kāi)方式menu_urlvarchar(255)NULL菜單路徑補(bǔ)充說(shuō)明表3-10博客設(shè)置表(myBlog_options)表名myBlog_options列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明option_namevarchar(255)NOTNULLPRIMARYKEY設(shè)置名option_valueLongtextNULL設(shè)置內(nèi)容補(bǔ)充說(shuō)明表3-11標(biāo)簽表(myBlog_tag)表名myBlog_tag列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明tag_idint(11)NOTNULLPRIMARYKEY標(biāo)簽IDTag_namevarchar(255)NULL標(biāo)簽名Tag_urlvarchar(255)NULL路徑補(bǔ)充說(shuō)明表3-12主題表(myBlog_theme)表名myBlog_theme列名數(shù)據(jù)類型(精度范圍)默認(rèn)約束條件說(shuō)明Idint(11)NOTNULLPRIMARYKEY主題IDTheme_namevarchar(255)NULL主題名(url)Theme_descibevarchar(255)NULL主題描述Theme_imgvarchar(255)NULL主題預(yù)覽圖Theme_statusInt(11)NULL啟動(dòng)狀態(tài)(0啟動(dòng)1未啟動(dòng))Create_timedatetime(0)創(chuàng)建時(shí)間補(bǔ)充說(shuō)明第4章功能實(shí)現(xiàn)4.1系統(tǒng)開(kāi)發(fā)準(zhǔn)備4.1.1開(kāi)發(fā)環(huán)境配置本課題所開(kāi)發(fā)的博客系統(tǒng)用到的開(kāi)發(fā)工具是idea。相較于編程的老大哥eclipse和myeclipse,idea可謂是后來(lái)居上,現(xiàn)有逐漸趕超前兩者的趨勢(shì)。這三者軟件各有各的優(yōu)點(diǎn),eclipse開(kāi)源免費(fèi),但很多插件要自己裝;myeclipse和idea需要破解,但很多組件都是集成好的;如果想在編程體驗(yàn)上有所要求,那就選idea,編碼擁有極其友好的補(bǔ)全機(jī)制和視覺(jué)體驗(yàn)。安裝好軟件后首先創(chuàng)建springboot項(xiàng)目,勾選thymeleaf,idea會(huì)自動(dòng)幫我們配置好相關(guān)運(yùn)行環(huán)境,如下圖所示:圖4-1thymeleaf結(jié)構(gòu)圖其中startupConfig類配置的啟動(dòng)系統(tǒng)的準(zhǔn)備操作,加載設(shè)置內(nèi)容,菜單和主題。ThymeleafDialectConfig類里單純的注冊(cè)了bean容器,new了一個(gè)ThSysDialect對(duì)象裝進(jìn)容器里。WebMvcConfig類繼承了WebMvcConfigurer接口,重寫(xiě)了實(shí)現(xiàn)攔截器的方法和靜態(tài)資源路徑訪問(wèn)的方法以及文件屬性方法。然后利用navicat工具在本地mysql環(huán)境創(chuàng)建名為myblog的數(shù)據(jù)庫(kù),接著在yaml文件里配置阿里連接池和數(shù)據(jù)庫(kù)名、密碼等信息。4.1.2系統(tǒng)開(kāi)發(fā)方法首先我大致整理出幾個(gè)比較重點(diǎn)和難點(diǎn)的問(wèn)題,一是如何讓這個(gè)博客系統(tǒng)擁有較強(qiáng)的可拓展性和維護(hù)性;二是如何設(shè)計(jì)建立數(shù)據(jù)庫(kù)實(shí)體之間的關(guān)聯(lián)和邏輯性,充分讓數(shù)據(jù)庫(kù)交互實(shí)現(xiàn)部分兼容;三是如何管理文章的分類,排版。讓游客能更直接地、更容易看到有意義和價(jià)值的文章。針對(duì)這三個(gè)問(wèn)題,系統(tǒng)的開(kāi)發(fā)和數(shù)據(jù)庫(kù)設(shè)計(jì)就必須要做到以下幾點(diǎn):模塊接口定義的清晰;基礎(chǔ)庫(kù)類和接口設(shè)計(jì)合理,適當(dāng)建立可擴(kuò)展的抽象類,充分做到面向?qū)ο缶幊?;?shù)據(jù)庫(kù)使用的sql語(yǔ)句要標(biāo)準(zhǔn),如果有差異較大的sql格式要盡量集中,減少后期的維護(hù)和移植的難度,復(fù)雜的sql最好在數(shù)據(jù)庫(kù)里建立視圖來(lái)進(jìn)行查詢;使用navicat進(jìn)行數(shù)據(jù)庫(kù)的建立、新增、維護(hù)工作,增加編程效率;設(shè)計(jì)一個(gè)類似訂閱功能的rss源,讓普通用戶能通過(guò)各種rss閱讀器來(lái)實(shí)現(xiàn)對(duì)文章的獲?。?.1.3開(kāi)發(fā)設(shè)計(jì)周期系統(tǒng)開(kāi)發(fā)周期如下:1.2021-02-28——2021-03-01 初步搭建項(xiàng)目與環(huán)境2.2021-03-02——2021-03-25 開(kāi)發(fā)后端:文章管理模塊、用戶管理模塊、標(biāo)簽管理模塊、分類管理模塊、前臺(tái)模塊、設(shè)置模塊、頁(yè)面管理模塊、附件管理模塊、友鏈管理模塊、菜單管理模塊、日志信息模塊3.2021-03-26——2021-04-10 開(kāi)發(fā)前端:前臺(tái)和后臺(tái)的html頁(yè)面4.2021-04-11——2021-04-18 開(kāi)發(fā)rss和其他基礎(chǔ)的工具類5.2021-04-19——2021-04-20 開(kāi)發(fā)完畢,進(jìn)入測(cè)試功能階段 4.2系統(tǒng)登錄功能1.設(shè)計(jì)流程進(jìn)入該博客網(wǎng)站后,點(diǎn)擊左上角的請(qǐng)登錄進(jìn)入到登錄用戶界面,輸入用戶名和密碼,點(diǎn)擊登錄或者回車按鈕,完成驗(yàn)證后就可以進(jìn)入后臺(tái)管理界面。2.設(shè)計(jì)參數(shù)表4-1用戶登錄接口接口地址/admin/getLogin請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述userNamestr用戶名userPwdstr密碼sessionhttp服務(wù)端緩存響應(yīng)參數(shù)參數(shù)名類型描述UserObj用戶對(duì)象JsonResultObj結(jié)果類對(duì)象3.實(shí)現(xiàn)代碼核心代碼:驗(yàn)證數(shù)據(jù)庫(kù)并存儲(chǔ)日志和其他信息圖4-2登錄驗(yàn)證代碼圖圖4-3登錄驗(yàn)證代碼圖4.功能截圖圖4-4登錄功能圖4.3系統(tǒng)前臺(tái)功能1.設(shè)計(jì)流程博客系統(tǒng)前臺(tái)分為首頁(yè)、歸檔、友鏈以及新添加的菜單頁(yè)面。前臺(tái)共用head和foot內(nèi)容,head里左上角是登錄接口,如已登錄就展示頭像鏈接到后臺(tái);右上角是首頁(yè)、歸檔、友鏈以及新增菜單的接口按鈕;最右側(cè)是搜索框功能,全站搜索文章。footer的信息一半是在后臺(tái)博客設(shè)置里編輯,一半是其他固定的文本內(nèi)容。首頁(yè)是按照塊狀形式排列文章,文章塊分成文章縮略圖,標(biāo)題,標(biāo)簽。點(diǎn)擊縮略圖進(jìn)入文章頁(yè)面,從上到下顯示標(biāo)題,標(biāo)簽,內(nèi)容,文章說(shuō)明以及評(píng)論框。歸檔頁(yè)面里文章按照時(shí)間粒度(月)劃分,新文章排在前面。友鏈里展示自己的友鏈,對(duì)博客的一些說(shuō)明,最后是評(píng)論框,方便志同道合的朋友留下個(gè)人博客鏈接。2.設(shè)計(jì)參數(shù)表4-2前臺(tái)首頁(yè)接口地址/index請(qǐng)求類型POST接口描述通過(guò)訪問(wèn)網(wǎng)站ip進(jìn)入或是前端調(diào)用ajax請(qǐng)求請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述UserObj用戶對(duì)象JsonResultObj結(jié)果類對(duì)象表4-3文章頁(yè)接口地址/post/{articleUrl}請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述articleUrlstr用戶名requesthttphttp信息modelModelthymeleaf對(duì)象響應(yīng)參數(shù)參數(shù)名類型描述articlearticle文章對(duì)象表4-4自建頁(yè)面接口地址/{articleUrl}請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述articleUrlstr用戶名modelModelThymeleaf對(duì)象requesthttphttp信息響應(yīng)參數(shù)參數(shù)名類型描述articleObj文章對(duì)象表4-5搜索功能接口地址/search/{keywords}請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述Keywordsstr關(guān)鍵詞modelModelThymeleaf對(duì)象Pageint頁(yè)數(shù)響應(yīng)參數(shù)參數(shù)名類型描述articlesObj分頁(yè)類對(duì)象Keywordsstr關(guān)鍵詞urlstr頁(yè)面的url3.實(shí)現(xiàn)代碼核心代碼:響應(yīng)前臺(tái)參數(shù)返回首頁(yè)、動(dòng)態(tài)文章頁(yè)面加載、動(dòng)態(tài)自建頁(yè)面加載、搜索功能實(shí)現(xiàn)。圖4-5首頁(yè)分頁(yè)代碼圖圖4-6文章頁(yè)代碼圖圖4-7自建頁(yè)代碼圖圖4-8搜索功能代碼圖4.功能截圖圖4-6首頁(yè)圖4-7搜索圖4-8文章4.4文章管理功能1.設(shè)計(jì)流程該模塊分為四個(gè)頁(yè)面:所有文章,寫(xiě)文章、分類目錄、標(biāo)簽。在所有文章里,可進(jìn)行查看、編輯、丟棄操作。寫(xiě)文章里創(chuàng)建好的頁(yè)面如果沒(méi)輸入文章路徑,則在后臺(tái)生成時(shí)間戳為路徑,文章和自建頁(yè)面是放在同一數(shù)據(jù)表里管理的,通過(guò)post和page區(qū)別。分類目錄和標(biāo)簽都是用來(lái)標(biāo)注文章的,同一篇文章可以標(biāo)多個(gè)分類或者標(biāo)簽。2.設(shè)計(jì)參數(shù)表4-5文章顯示接口地址/admin/article請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述Statusint文章?tīng)顟B(tài)響應(yīng)參數(shù)參數(shù)名類型描述Infolist文章列publishedInt已發(fā)布數(shù)DraftInt草稿數(shù)RecycleInt回收站數(shù)表4-6新建文章接口地址/admin/article/new請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述categorysList分類列Tagslist標(biāo)簽列表4-7分類管理接口地址/post/category請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述categorysList分類列表4-8標(biāo)簽管理接口地址/admin/tag請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述Tagslist標(biāo)簽列3.代碼實(shí)現(xiàn)核心代碼:顯示所有文章、進(jìn)入新建文章頁(yè)面、進(jìn)入分類頁(yè)面、進(jìn)入標(biāo)簽頁(yè)面圖4-9所有文章查詢圖4-10進(jìn)入寫(xiě)文章頁(yè)面圖4-11進(jìn)入分類管理圖4-12進(jìn)入標(biāo)簽管理4.功能截圖圖4-13所有文章界面圖4-14寫(xiě)文章界面圖4-15分類管理界面圖4-16標(biāo)簽管理界面4.5后臺(tái)頁(yè)面管理功能1.設(shè)計(jì)流程該功能板塊里有兩個(gè)界面:所有頁(yè)面和新建頁(yè)面。在所有頁(yè)面里頁(yè)面分為已發(fā)布和草稿兩個(gè)狀態(tài),可以進(jìn)行查看,編輯和刪除操作,該界面主要用于放在前臺(tái)首頁(yè)的菜單上,進(jìn)行動(dòng)態(tài)管理網(wǎng)站頁(yè)面。在新建頁(yè)面里,博主填寫(xiě)好內(nèi)容后即可保存草稿或直接發(fā)布,成功后頁(yè)面信息可在所有頁(yè)面里呈現(xiàn)。2.設(shè)計(jì)參數(shù)表4-9顯示所有頁(yè)面接口地址/admin/page請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述StatusInt頁(yè)面狀態(tài)響應(yīng)參數(shù)參數(shù)名類型描述Infolist頁(yè)面列publishedInt已發(fā)布數(shù)DraftInt草稿數(shù)表4-10新建頁(yè)面接口地址/admin/page/new請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)3.代碼實(shí)現(xiàn)圖4-16顯示所有頁(yè)面圖4-17新建頁(yè)面4.功能截圖圖4-18所有頁(yè)面界面圖4-19所有頁(yè)面界面4.6后臺(tái)圖片管理功能1.設(shè)計(jì)流程該功能模塊主要負(fù)責(zé)管理博客平臺(tái)上所有需要用到的圖片,類似于一個(gè)小型圖片庫(kù)。可進(jìn)行上傳附件,刪除圖片的操作。支持多個(gè)圖片同時(shí)上傳和圖片拖拽上傳。2.設(shè)計(jì)參數(shù)表4-11顯示所有附件接口地址/admin/attachment請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述InfoObj圖片信息對(duì)象表4-12上傳圖片接口地址/admin/attachment/upload請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述FileMultipartFile圖片信息類響應(yīng)參數(shù)參數(shù)名類型描述FlagBoolean消息flagMsgstr消息內(nèi)容3.代碼實(shí)現(xiàn)圖4-20顯示所有圖片信息圖4-21上傳圖片(1)圖4-22上傳圖片(2)圖4-23上傳圖片(3)4.功能截圖圖4-24圖片管理圖4-25圖片詳情4.7后臺(tái)菜單管理功能1.設(shè)計(jì)流程該功能模塊主要負(fù)責(zé)管理前臺(tái)菜單欄,可以更改菜單欄的信息和鏈接路徑,也可以將菜單列下架,和頁(yè)面管理連接使用。2.設(shè)計(jì)參數(shù)表4-13菜單管理接口地址/admin/menus請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述MenusObj菜單對(duì)象3.代碼實(shí)現(xiàn)圖4-26菜單管理實(shí)現(xiàn)4.功能截圖圖4-27菜單管理4.8后臺(tái)用戶管理功能1.設(shè)計(jì)流程該功能模塊主要負(fù)責(zé)維護(hù)博主的個(gè)人信息、友情鏈接、賬號(hào)密碼等,分為個(gè)人資料和友情鏈接兩個(gè)頁(yè)面。修改密碼要輸入原密碼和兩次新密碼,通過(guò)驗(yàn)證才能修改。友情鏈接主要存放博主平時(shí)感興趣的網(wǎng)址,可以直接通過(guò)這里進(jìn)行訪問(wèn)。2.設(shè)計(jì)參數(shù)表4-14個(gè)人資料接口地址/admin/menus請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述UserObj用戶對(duì)象表4-15修改密碼接口地址/admin/menus請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述formerlyPwdStr原密碼nowPwdStr新密碼confirmPwdStr確認(rèn)密碼userIdInt用戶idrequesthttp服務(wù)器信息響應(yīng)參數(shù)參數(shù)名類型描述FlagBool消息flagMagStr消息文本表4-16友情鏈接接口地址/admin/links請(qǐng)求類型GET接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述無(wú)無(wú)無(wú)響應(yīng)參數(shù)參數(shù)名類型描述LinksObj鏈接對(duì)象3.代碼實(shí)現(xiàn)圖4-28個(gè)人資料圖4-29修改密碼圖4-30友情鏈接4.功能截圖圖4-31個(gè)人資料圖4-32修改密碼圖4-33友情鏈接4.9后臺(tái)博客設(shè)置功能1.設(shè)計(jì)流程該功能模塊負(fù)責(zé)管理博客系統(tǒng)的參數(shù)設(shè)置,在系統(tǒng)啟動(dòng)初始化時(shí)就會(huì)查詢并將數(shù)值加載到相關(guān)頁(yè)面去,通過(guò)前臺(tái)攔截器實(shí)現(xiàn)鏈接頁(yè)面前執(zhí)行初始化option對(duì)象。2.設(shè)計(jì)參數(shù)表4-17保存博客設(shè)置接口地址/admin/option/save請(qǐng)求類型POST接口描述前臺(tái)方法傳入?yún)?shù)請(qǐng)求參數(shù)參數(shù)名類型描述MapMap設(shè)置內(nèi)容鍵值對(duì)響應(yīng)參數(shù)參數(shù)名類型描述FlagBool消息flagMsgStr消息文本3.代碼實(shí)現(xiàn)圖4-34博客設(shè)置保存實(shí)現(xiàn)4.功能截圖圖4-35博客設(shè)置界面第5章測(cè)試及其總結(jié)5.1測(cè)試目的及方法任何一個(gè)互相網(wǎng)的web項(xiàng)目都需要進(jìn)行系統(tǒng)測(cè)試,為了檢查系統(tǒng)開(kāi)發(fā)是否完成所要求的的流程,功能是否能順利執(zhí)行,是否會(huì)出現(xiàn)流程上的bug。本項(xiàng)目測(cè)試打算采用靜態(tài)測(cè)試和接口傳輸測(cè)試。靜態(tài)測(cè)試是指不運(yùn)行測(cè)試程序,只通過(guò)檢查接口、源程序語(yǔ)法、結(jié)構(gòu)來(lái)測(cè)試出程序是否合格;接口傳輸測(cè)試是指點(diǎn)擊功能按鈕或直接在地址欄輸入接口地址來(lái)測(cè)試功能是否合格。5.2測(cè)試功能5.2.1前臺(tái)文章評(píng)論測(cè)試游客進(jìn)入博客首頁(yè)后,能在文章和友鏈界面發(fā)表評(píng)論,并且點(diǎn)擊頭像可直接鏈接到游客留下的鏈接頁(yè)面。表5-1前臺(tái)評(píng)論模塊測(cè)試用例編號(hào)測(cè)試內(nèi)容測(cè)試數(shù)據(jù)或操作說(shuō)明測(cè)試結(jié)果1用戶添加評(píng)論游客名字:張浩游客郵箱:123@游客網(wǎng)址:游客評(píng)論:博主真厲害,關(guān)注了!添加成功2名字綁定鏈接點(diǎn)擊名字跳轉(zhuǎn)鏈接跳轉(zhuǎn)成功圖5-1前臺(tái)評(píng)論模塊測(cè)試結(jié)果圖5.2.2前臺(tái)搜索測(cè)試在右上角輸入要查詢的文章關(guān)鍵字,按下enter鍵就能獲取到對(duì)應(yīng)的文章。表5-2前臺(tái)評(píng)論模塊測(cè)試用例編號(hào)測(cè)試內(nèi)容測(cè)試數(shù)據(jù)或操作說(shuō)明測(cè)試結(jié)果1搜索功能搜索內(nèi)容:java成功搜索搜索內(nèi)容:第三篇成功搜索搜索內(nèi)容:數(shù)據(jù)庫(kù)無(wú)內(nèi)容返回圖5-2前臺(tái)搜索模塊測(cè)試結(jié)果圖(1)圖5-3前臺(tái)搜索模塊測(cè)試結(jié)果圖(2)圖5-4前臺(tái)搜索模塊測(cè)試結(jié)果圖(3)5.2.3登錄功能測(cè)試驗(yàn)證用戶登錄賬戶和密碼是否通過(guò)檢驗(yàn)才能進(jìn)入后臺(tái),5次不通過(guò)則會(huì)禁止用戶十分鐘內(nèi)再次登錄。表5-3后臺(tái)登錄模塊測(cè)試用例編號(hào)測(cè)試內(nèi)容測(cè)試數(shù)據(jù)或操作說(shuō)明測(cè)試結(jié)果1登錄驗(yàn)證賬戶:Mr.zuo密碼:123456成功登錄賬戶:Mr.zuo密碼:123456789登錄失敗2禁止登錄十分鐘連續(xù)五次以上輸入錯(cuò)誤禁止登錄圖5-5后臺(tái)登錄模塊測(cè)試結(jié)果圖(1)圖5-6后臺(tái)登錄模塊測(cè)試結(jié)果圖(2)圖5-7后臺(tái)登錄模塊測(cè)試結(jié)果圖(3)5.2.3后臺(tái)管理測(cè)試后臺(tái)所有管理模塊進(jìn)行增刪改查,檢查是否報(bào)錯(cuò)。表5-4后臺(tái)登錄模塊測(cè)試用例編號(hào)測(cè)試內(nèi)容測(cè)試數(shù)據(jù)或操作說(shuō)明測(cè)試結(jié)果1文章管理文章添加:點(diǎn)擊保存文章按鈕添加成功文章展示:點(diǎn)擊所有文章自動(dòng)加載展示成功文章編輯:點(diǎn)擊編輯按鈕編輯成功文章刪除:點(diǎn)擊刪除按鈕刪除成功2標(biāo)簽管理標(biāo)簽添加:點(diǎn)擊保存標(biāo)簽按鈕添加成功標(biāo)簽展示:查看所有標(biāo)簽展示成功標(biāo)簽編輯:點(diǎn)擊修改按鈕編輯成功標(biāo)簽刪除:點(diǎn)擊刪除按鈕刪除成功3分類管理分類添加:點(diǎn)擊保存分類按鈕添加成功分類展示:查看所有分類展示成功分類編輯:點(diǎn)擊修改按鈕編輯成功分類刪除:點(diǎn)擊刪除按鈕刪除成功4附件管理附件上傳:點(diǎn)擊上傳按鈕選擇文件上傳成功附件刪除:點(diǎn)擊圖片進(jìn)行刪除刪除成功5頁(yè)面管理頁(yè)面添加:點(diǎn)擊保存頁(yè)面按鈕添加成功頁(yè)面展示:點(diǎn)擊所有頁(yè)面自動(dòng)加載展示成功頁(yè)面編輯:點(diǎn)擊編輯按鈕編輯成功頁(yè)面刪除:點(diǎn)擊刪除按鈕刪除成功6個(gè)人資料管理資料保存:點(diǎn)擊個(gè)人資料,修改內(nèi)容后進(jìn)行保存修改成功密碼修改:輸入原密碼和新密碼進(jìn)行保存,然后重新登陸修改成功,登錄成功7友鏈管理友鏈添加:點(diǎn)擊保存友鏈按鈕添加成功友鏈展示:查看所有友鏈展示成功友鏈修改:點(diǎn)擊修改按鈕修改成功友鏈刪除:點(diǎn)擊刪除按鈕刪除成功友鏈訪問(wèn):點(diǎn)擊訪問(wèn)按鈕跳轉(zhuǎn)成功5.2.4博客設(shè)置測(cè)試后臺(tái)博客設(shè)置模塊對(duì)各個(gè)功能設(shè)置進(jìn)行設(shè)置測(cè)試,并對(duì)設(shè)置的相應(yīng)功能驗(yàn)證是否成功。表5-5博客設(shè)置模塊測(cè)試用例編號(hào)測(cè)試內(nèi)容測(cè)試數(shù)據(jù)或操作說(shuō)明測(cè)試結(jié)果1博客設(shè)置常規(guī)設(shè)置:填寫(xiě)博客標(biāo)題、地址、首頁(yè)LOGO、頁(yè)腳信息、頁(yè)面圖標(biāo)點(diǎn)擊保存SEO設(shè)置:填寫(xiě)關(guān)鍵詞、博客描述、token點(diǎn)擊保存文章設(shè)置:填寫(xiě)首頁(yè)顯示條數(shù)、rss顯示條數(shù)、摘要字?jǐn)?shù)點(diǎn)擊保存評(píng)論設(shè)置:填寫(xiě)valine插件所需的appid和appkey、選擇頭像類型、輸入占位內(nèi)容點(diǎn)擊保存郵箱設(shè)置:填寫(xiě)郵箱賬號(hào)點(diǎn)擊保存保存成功2驗(yàn)證設(shè)置常規(guī)設(shè)置-博客標(biāo)題:MyBlog常規(guī)設(shè)置-頁(yè)腳信息:聯(lián)系我13

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論