基于SpringMVC的漫画交流分享平台设计与实现
2017-03-31唐煜杰张明会
唐煜杰,张明会
(大连东软信息学院 软件工程,辽宁 大连 116023)
0 引言
漫画读者已经越来越多,在过去,读者们阅读纸质漫画,只能与身边少数的爱好者讨论,分享也只能以借阅的方式,兴趣圈非常小,也难以看到很多不同种类的漫画。很多漫画读者选择在QQ群和漫画论坛上分与其他漫画爱好者交流漫画,但是这样的交流分享方式十分单一,无法在一个网站上分享的同时阅读漫画,用户只能上传一些截图,未看过该漫画的读者还要自己去别处找漫画看,这种方式让广大漫画读者觉得极为不便又浪费时间,漫画的阅读与交流需要有一定的连贯性与流畅性。
图1 总体业务流程图
图 2功能结构图
1 系统开发技术
1.1 SpringMVC
Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单[1]。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。可以轻松实现DIP(依赖倒换)、OCP(开闭原则)、IOC(控制反转)、AOP(面向切面)等特性[2]。
1.2 Mybatis
MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架[3]。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录[4]。
1.3 MySQL
MySQL是一个开放源码的小型关联式数据库管理系统由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品。在 WEB 应用方面,MySQL是最好的关系型数据库管理系统之一。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库[5]。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。
2 系统功能分析与设计
表1 用户信息表(t_user)
表2 漫画信息表(t_goods)
图3 系统架构图
表3 分类信息表(t_category)
表4 评论信息表(t_comment)
2.1 业务流程
本系统主要分为管理员和用户两种角色,管理员上传漫画、用户选择漫画、阅读漫画、评论漫画等,涉及管理员及用户两种用户类型。漫画交流分享平台的总体业务流程如图1所示。
2.2 功能模块设计
根据总体业务流程,确定本系统主要包括如图2所示功能模块。
2.3 系统架构设计
在线漫画交流分享平台的系统架构分为四层,如图3所示。
其中第一层为Web层,包含前台JSP页面与Action部分的DispatcherServlet,负责接收前台发来的请求并控制转发请求。第二层为Service层,负责处理业务逻辑。第三层为Dao层,由持久层文件组成,负责接收Service的请求并对操作数据库。第四层为实体类,负责存放各种实体类文件及其构造函数。
2.4 数据库设计
本系统主要有四个实体,分别为漫画、漫画类别、用户与评论,四个实体间的关系(ER图)如图4所示。
图4 系统ER图
通过对领域对象、业务对象及对象间关联的分析,对本系统的数据库表进行了设计,如表1-表4所示。本系统数据库管理采用MySQL。
(1)用户信息表(t_user)。用户信息表主要用于保存系统管理员的信息,主要字段包括:用户ID、用户名、登录密码、用户年龄、用户性别、用户邮箱、用户身份。表结构如表1所示。
图5 评论漫画用例顺序图
图6 评论漫画用例的设计类图
(2)漫画信息表(t_goods)。漫画信息表主要用于保存漫画的信息,主要字段包括:漫画ID、类别ID、漫画名称、漫画简介、漫画作者、漫画地区、漫画上传时间、漫画推荐度、漫画图片地址。表结构如表2所示。
(3)分类信息表(t_category)。用户信息表主要用于保存漫画分类的信息,主要字段包括:分类ID、分类名、分类图片、分类状态。表结构如表3所示。
(4)评论信息表(t_comment)。评论信息表主要用于保存用户评论的信息,主要字段包括:评论ID、漫画ID、用户ID、评论内容、评论时间。表结构如表4所示。
2.5 对象设计
本系统的主要功能包括用户浏览漫画、评论漫画、上传漫画以及管理员对基本信息管理等,介于篇幅有限,下文仅对评论漫画和上传漫画两个模块进行详细设计。
2.5.1 评论漫画用例对象设计
(1)用例实现。用户选择漫画后进入阅读界面,然后可以在阅读界面中添加评论,评论通过post请求发送给Controller层的CommentAction类,然后通过AddComment()方法传给CommentService,后发送给持久层写进数据库。评论漫画用例的实现顺序图如图5所示。
(2)设计类图。根据顺序图的分析得到评论漫画用例的设计类图,分为实体类user,控制层CommentAction类和逻辑层CommentService类,如图6所示。
2.5.2 上传漫画用例对象设计
(1)用例实现。用户登录后可以上传自己的漫画,上传内容和漫画实体类中的元素相统一,点击上传按钮之后发送post请求到UploadAction类中,再获取用户ID,用AddGoods()方法发送到UploadService类中,检查漫画是否已存在,如不存在,传入持久层插入数据库,并将结果返回到页面。上传用例的实现顺序图如图7所示。
(2)设计类图。根据分析得到上传用例的设计类图,分为user和comic两个实体类及上传的控制层和逻辑层类,如图8所示。
图7 上传用例顺序图
图8 上传用例的设计类图
3 系统实现
3.1 上传功能
第一个核心功能是用户的漫画上传功能,因为漫画交流分享平台强调的就是交流和分享,用户登录后即可分享漫画,进入上传漫画页面,填入漫画信息,上传封面和内容图片,点击上传即可上传完毕。点击分享漫画,进入分享漫画页面,并填入漫画信息,点击上传进行分享。Mapper层实现的部分代码如下:
3.2 评论功能
用户在漫画浏览页面上可以对当前浏览的漫画进行评论,用户先打开主页,然后选择分类,选择漫画进入阅读页面,然后进行评论。实现评论功能的Service和Mapper层代码如下所示:
4 结语
本文总结了漫画交流系统分析、设计与实现的全过程,系统最终实现了用户浏览漫画、漫画交流及分享的功能,为漫画爱好者及漫画作者提供了很好的交流分享平台。本项目主要有两个特点:
(1)业务逻辑上简明直接,目标用户设定准确,以漫画爱好者与漫画作者为主,为漫画爱好者提供了一个分享自己喜爱的漫画与他人交流的平台,也为新手漫画作者提供了直接展示自己漫画的机会,目前网络上并没有功能主题相似的网站,本系统可以填补市场空白,有着广阔的发展空间。
(2)程序上,由于使用了Spring与Mybatis框架,使得项目十分精简,代码量比传统的Servlet +JDBC精简很多,便于维护。开发过程中使用了敏捷开发的思想,把开发与测试相结合,故UAT阶段的Bug数非常少。此外,Spring框架的使用使得系统相应性能及安全性也比传统架构出色。
参考文献:
[1]周燕玲.SpringMVC框架开发WEB应用程序的探索与研究[J].科技广场,2016,(6):25-28.
[2]董英茹.简谈AngularJS在下一代Web开发中的应用[J]. 软件工程师,2015,(05):30-31.
[3]姜英,王嘉.基于Struts2+Spring+Freemarker的自定义框架研究[J].电脑编程技巧与维护,2013,(12):4-5
[4]林钰杰,吴丽贤.基于整合框架的Web应用系统开发平台设计与实现[J].电子设计工程,2016,24(20):62-65.
[5]赵璘.基于Spring MVC+JDBCTemplate的Web系统的研究与应用[J],软件工程,2017,1:5-8.
[6]阳小兰,罗明.基于Spring+SpringMVC+MyBatis网上论坛的设计与实现[J].黑龙江科技信息,2016,(36):279-280.
[7]王晓华.试析MySQL数据库性能的调优[J].电脑编程技巧与维护,2016,(22):48,82.
[8]贾跃,付丽梅,韩羽佳.软件开发技能测评系统的设计与实现[J]. 电子技术与软件工程,2016,(22):64-65.
[9]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.
[10]SerdarYegulalp,SerdarYegulalp.MySQL 8.0:More Unicode,less hassle[J].InfoWorld.com,2016.
[11]林跃进.论Spring编写J2EE程序的优势[J].辽宁师专学报(自然科学版),2007,(01):34-35.
[12]付丽梅,刘英鹏,贾跃.基于腾讯微校平台的校园移动办公APP设计与实现[J].信息系统工程,2017,(01):156-157.
[13]李绪成,王红,闫海珍.基于B/S架构的MIS生成系统[J].长春师范学院学报(自然科学版),2009,(02):24-26.
[14]罗迪,云龙,杨姣.基于Spring+MyBatis的高校人事管理系统的设计与实现[J].数字技术与应用,2017,(04):179.
[15]李洋.SSM框架在Web应用开发中的设计与实现[J].计算机技术与发展,2016,(12):190-194.