APP下载

基于SpringMVC的漫画交流分享平台设计与实现

2017-03-31唐煜杰张明会

电子元器件与信息技术 2017年2期
关键词:用例漫画数据库

唐煜杰,张明会

(大连东软信息学院 软件工程,辽宁 大连 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.

猜你喜欢

用例漫画数据库
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
数据库
知识漫画
漫画4幅
漫画与幽默
数据库
数据库