張明會,唐煜杰
(1.大連東軟信息學院 軟件工程,遼寧省 大連市 116023)
漫畫讀者已經越來越多,在過去,讀者們閱讀紙質漫畫,只能與身邊少數的愛好者討論,分享也只能以借閱的方式,興趣圈非常小,也難以看到很多不同種類的漫畫。很多漫畫讀者選擇在QQ群和漫畫論壇上分與其他漫畫愛好者交流漫畫,但是這樣的交流分享方式十分單一,無法在一個網站上分享的同時閱讀漫畫,用戶只能上傳一些截圖,未看過該漫畫的讀者還要自己去別處找漫畫看,這種方式讓廣大漫畫讀者覺得極為不便又浪費時間,漫畫的閱讀與交流需要有一定的連貫性與流暢性。
Spring MVC是Spring提供的一個強大而靈活的web框架。借助于注解,Spring MVC提供了幾乎是POJO的開發(fā)模式,使得控制器的開發(fā)和測試更加簡單[1-4]。這些控制器一般不直接處理請求,而是將其委托給Spring上下文中的其他bean,通過Spring的依賴注入功能,這些bean被注入到控制器中??梢暂p松實現DIP(依賴倒換)、OCP(開閉原則)、IOC(控制反轉)、AOP(面向切面)等特性[5]。
MyBatis是支持普通 SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架[6-8]。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的 XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄[9]。
MySQL是一個開放源碼的小型關聯式數據庫管理系統由瑞典MySQL AB 公司開發(fā),目前屬于Oracle 旗下產品[10]。在 WEB 應用方面,MySQL是最好的關系型數據庫管理系統之一。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫[11]。非常流行的開源軟件組合LAMP中的“M”指的就是MySQL[12]。
通用的管理系統中一般至少都會根據不同功能設置不同的角色,不論是Web系統還是APP[13-15]。本系統主要分為管理員和用戶兩種角色,管理員上傳漫畫、用戶選擇漫畫、閱讀漫畫、評論漫畫等,涉及管理員及用戶兩種用戶類型。漫畫交流分享平臺的總體業(yè)務流程如圖1所示。
根據總體業(yè)務流程,確定本系統主要包括如圖2所示功能模塊。
圖1 總體業(yè)務流程圖Fig.1 Business process diagram
圖 2 功能結構圖Fig.2 Functional structure diagram
在線漫畫交流分享平臺的系統架構分為四層,如圖3所示。
其中第一層為Web層,包含前臺JSP頁面與Action部分的DispatcherServlet,負責接收前臺發(fā)來的請求并控制轉發(fā)請求。第二層為Service層,負責處理業(yè)務邏輯。第三層為Dao層,由持久層文件組成,負責接收Service的請求并對操作數據庫。第四層為實體類,負責存放各種實體類文件及其構造函數。
本系統主要有四個實體,分別為漫畫、漫畫類別、用戶與評論,四個實體間的關系(ER圖)如圖4所示。
通過對領域對象、業(yè)務對象及對象間關聯的分析,對本系統的數據庫表進行了設計,如表3.1--表3.8所示。本系統數據庫管理采用MySQL。
表1 用戶信息表(t_user)Tab.1 User information table(t_user)
(1)用戶信息表(t_user)
用戶信息表主要用于保存系統管理員的信息,主要字段包括:用戶ID、用戶名、登錄密碼、用戶年齡、用戶性別、用戶郵箱、用戶身份。表結構如表1所示。
(2)漫畫信息表(t_goods)
漫畫信息表主要用于保存漫畫的信息,主要字段包括:漫畫ID、類別ID、漫畫名稱、漫畫簡介、漫畫作者、漫畫地區(qū)、漫畫上傳時間、漫畫推薦度、漫畫圖片地址。表結構如表2所示。
(3)分類信息表(t_category)
用戶信息表主要用于保存漫畫分類的信息,主要字段包括:分類ID、分類名、分類圖片、分類狀態(tài)。表結構如表3所示。
圖 3 系統架構圖Fig.3 System architecture diagram
圖4 系統ER圖Fig.4 System ER diagram
表2 漫畫信息表(t_goods)Tab.2 Comic information table(t_goods)
表3 分類信息表(t_category)Tab.3 category information table(t_category)
(4)評論信息表(t_comment)
評論信息表主要用于保存用戶評論的信息,主要字段包括:評論ID、漫畫ID、用戶ID、評論內容、評論時間。表結構如表4所示。
表4 評論信息表(t_comment)Tab.4 comment information table (t_comment)
本系統的主要功能包括用戶瀏覽漫畫、評論漫畫、上傳漫畫以及管理員對基本信息管理等,介于篇幅有限,下文僅對評論漫畫和上傳漫畫兩個模塊進行詳細設計。
3.5.1 評論漫畫用例對象設計
(1)用例實現
用戶選擇漫畫后進入閱讀界面,然后可以在閱讀界面中添加評論,評論通過post請求發(fā)送給Controller層的CommentAction類,然后通過AddComment()方法傳給CommentService,后發(fā)送給持久層寫進數據庫。
(2)設計類圖
根據順序圖的分析得到評論漫畫用例的設計類圖,分為實體類user,控制層CommentAction類和邏輯層CommentService類,如圖5所示。
圖5 評論漫畫用例的設計類圖Fig.6 Class diagrams for comments on comic use cases
3.5.2 上傳漫畫用例對象設計
(1)用例實現
用戶登錄后可以上傳自己的漫畫,上傳內容和漫畫實體類中的元素相統一,點擊上傳按鈕之后發(fā)送post請求到UploadAction類中,再獲取用戶ID,用AddGoods()方法發(fā)送到UploadService類中,檢查漫畫是否已存在,如不存在,傳入持久層插入數據庫,并將結果返回到頁面。
(2)設計類圖
根據分析得到上傳用例的設計類圖,分為user和comic兩個實體類及上傳的控制層和邏輯層類,如圖6所示。
圖6 上傳用例的設計類圖Fig.6 Class diagrams for uploading usecase
第一個核心功能是用戶的漫畫上傳功能,因為漫畫交流分享平臺強調的就是交流和分享,用戶登錄后即可分享漫畫,進入上傳漫畫頁面,填入漫畫信息,上傳封面和內容圖片,點擊上傳即可上傳完畢。點擊分享漫畫,進入分享漫畫頁面,并填入漫畫信息,點擊上傳進行分享。Mapper層實現的部分代碼如下:
用戶在漫畫瀏覽頁面上可以對當前瀏覽的漫畫進行評論,用戶先打開主頁,然后選擇分類,選擇漫畫進入閱讀頁面,然后進行評論。實現評論功能的Service和Mapper層代碼如下所示:
@Override public Page<Goods> getGoodsByCate(String cateId,String sort){
本文總結了漫畫交流系統分析、設計與實現的全過程,系統最終實現了用戶瀏覽漫畫、漫畫交流及分享的功能,為漫畫愛好者及漫畫作者提供了很好的交流分享平臺。本項目主要有兩個特點:
(1)業(yè)務邏輯上簡明直接,目標用戶設定準確,以漫畫愛好者與漫畫作者為主,為漫畫愛好者提供了一個分享自己喜愛的漫畫與他人交流的平臺,也為新手漫畫作者提供了直接展示自己漫畫的機會,目前網絡上并沒有功能主題相似的網站,本系統可以填補市場空白,有著廣闊的發(fā)展空間。
(2)程序上,由于使用了Spring與Mybatis框架,使得項目十分精簡,代碼量比傳統的Servlet +JDBC精簡很多,便于維護。開發(fā)過程中使用了敏捷開發(fā)的思想,把開發(fā)與測試相結合,故UAT階段的Bug數非常少。此外,Spring框架的使用使得系統相應性能及安全性也比傳統架構出色。
[1] 周燕玲. SpringMVC框架開發(fā)WEB應用程序的探索與研究[J].科技廣場,2016,(6):25-28.Zhou Yanling.Exploration and Research on developing WEB application program based on SpringMVC framework, Science Mosaic,2016,(6):25-28.
[2] 趙璘.基于Spring MVC+JDBCTemplate的Web系統的研究與應用[J],軟件工程,2017,1:5-8.Zhao Lin.Research and application of Web system based on Spring MVC+JDBCTemplate, Software Engineer,2017,1:5-8.
[3] 林躍進. 論Spring編寫J2EE程序的優(yōu)勢[J]. 遼寧師專學報(自然科學版),2007,(01):34-35.Lin Yuejing. On the advantages of writing J2EE program by Spring ,Journal of Liaoning Teachers College(Natural Science Edition) ,2007,(01):34-35.
[4] 李洋. SSM框架在Web應用開發(fā)中的設計與實現[J]. 計算機技術與發(fā)展,2016,(12):190-194.Li Yang.Design and implementation of SSM framework in Web application development, Computer Technology and Development, ,2016,(12):190-194.
[5] 陽小蘭,羅明.基于Spring+SpringMVC+MyBatis網上論壇的設計與實現[J]. 黑龍江科技信息, 2016(36):279-280.Yang Xiaolan ,Luoming.Design and implementation of online forum based on Spring+SpringMVC+MyBatis, Heilongjiang Science and Technology Information, 2016(36):279-280.
[6] Zhang D, Wei Z, Yang Y. Research on Lightweight MVC Framework Based on Spring MVC and Mybatis[C]// Sixth International Symposium on Computational Intelligence and Design. IEEE, 2014:350-353.
[7] 姜英,王嘉. 基于Struts2+Spring+Freemarker的自定義框架研究[J]. 電腦編程技巧與維護,2013,(12):4-5.Jiang Ying,Wang Jia.Research of custom framework based on Struts2+Spring+Freemarker, Computer Programming Skills & Maintenance,2013,(12):4-5.
[8] 董英茹. 簡談AngularJS在下一代Web開發(fā)中的應用[J]. 軟件工程師,2015,(05):30-31.Dong Yingru.Brief talk about the application of AngularJS in next generation Web development, Software Engineer, 2015,(05):30-31.
[9] 羅迪,云龍,楊姣. 基于Spring+MyBatis的高校人事管理系統的設計與實現[J]. 數字技術與應用,2017,(04):179.Luo Di,Yun Long,Yang Jiao.Design and implementation of university personnel management system based on Spring+MyBatism. Digital Technology and Application,2017,(04):179.
[10] 劉雪香. 大型ERP 實施中數據庫的設計優(yōu)化研究[J]. 軟件,2017,38(5):137-139.Liu Xuexiang. Research on database design optimization in large scale ERP implementation, Electronic Design Engineering[J] , Software,2017,38(5):137-139.
[11] 王慶福.網站建設中數據庫技術與WEB 技術的應用對比研究[J].軟件,2013,34(2):86-87.Wang Qingfu. Comparative study of database technology and WEB technology in website construction[J], Software, 2013,34(2):86-87.
[12] 賈躍,付麗梅,韓羽佳. 軟件開發(fā)技能測評系統的設計與實現[J]. 電子技術與軟件工程,2016,(22):64-65.Jia Yue,Fu Limei, Han Yujia.Design and implementation of software development skills evaluation system, Electronic Technology &Software Engineering,2016,(22):64-65.
[13] Serdar Yegulalp,Serdar Yegulalp. MySQL 8.0: More Unicode, less hassle[J]. InfoWorld.com,2016
[14] 付麗梅,劉英鵬,賈躍. 基于騰訊微校平臺的校園移動辦公APP設計與實現[J]. 信息系統工程,2017,(01):156-157.Fu Limei,Liu YingPeng, Jia Yue. Design and implementation of campus mobile office APP based on Tencent micro school platform .China CIO News, 2017, (01):156-157.
[15] 李緒成,王紅,閆海珍. 基于B/S架構的MIS生成系統[J]. 長春師范學院學報(自然科學版),2009,(02):24-26.Li Xucheng,Wang Hong,Yan Haizhen. MIS generation system based on B/S architecture,Journal of Changchun Normal University(Natural Sciences) ,2009,(02):24-26.