APP下载

基于SSM框架的IT知识学习交流平台的设计与实现

2022-08-02王柯周祎纪雯烩

电子制作 2022年13期
关键词:发送给交流平台框架

王柯,周祎,纪雯烩

(东南大学成贤学院 电子与计算机工程学院,江苏南京,210000)

0 引言

现在的学习交流平台所涉及的内容很广泛,大到12个学科门类,小到各门类下的各个专业,看似内容很多但是对于只有某一特定专业知识需求的用户来讲该平台所呈现的交流内容大多不符合自身需求。对于一个想在IT领域深入学习的学生而言,此类人群的需求是一个精细化的学习交流平台。因此,本课题设计了具有高扩展性和可维护性的基于SSM框架的IT知识学习交流平台,实现了IT文章知识的分类、评论、发表、管理和IT知识学习路线的梳理,方便IT学习者的使用与交流,具有很好的现实意义。

1 SSM框架

Spring+SpringMVC+MyBatis三部分组成了SSM框架,该框架使用Spring MVC负责请求的转发和视图管理,Spring实现业务对象管理,Mybatis作为数据对象的持久化引擎。基于SSM框架三部分结构的关系运行流程如图1所示。

图1 基于SSM框架三部分结构的关系运行流程

1.1 Spring框架

Spring作为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架),不仅是Java运用最广泛的开源框架,而且提供了对其他优秀开源框架的集成支持。其中,IoC是Spring框架的核心内容,IoC可以将创建控制对象的主动权从程序内部交到第三方系统手中,这使得我们程序员不再去管理对象的创建,用更多的精力去关注业务的实现,耦合性大大降低,从而简化了开发。

1.2 SpringMVC框架

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架,与Spring兼容性好、功能强大。Spring的web框架围绕DispatcherServlet即前端控制器设计。DispatcherServlet的作用是将请求分发到不同的处理器,是整个SpringMVC的控制中心。Spring MVC框架像许多其他MVC框架一样, 以请求为驱动 , 围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet是一个实际的Servlet (它继承自HttpServlet 基类)。SpringMVC的原理如图2所示。

由图2可知当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。

图2 SpringMVC原理

1.3 MyBatis

MyBatis 是一个优秀的持久层框架,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的实体类映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程。因此,MyBatis不会对应用程序或者数据库的现有设计强加任何影响,通过sql语句就可以满足操作数据库的所有需求。

2 系统功能分析与设计

2.1 业务流程

本系统有普通用户和管理员两种身份类型,管理员能浏览平台内容、管理文章及其分类和标签、管理用户及其评论,用户能浏览平台内容、撰写并发表文章、发表评论。IT知识学习交流平台总体业务流程如图3所示。

图3 总体业务流程图

2.2 模块功能设计

IT知识学习交流平台功能结构如图4所示。

图4 功能结构图

2.3 系统架构设计

IT知识学习交流平台系统框架分为四层,分别是数据持久层、服务层(DAO层)、控制层(Controller层)、表现层(Web层),如图5所示。Web层通过DispatcherServlet接收用户发来的请求,通过注册好的路径转发到相应的Controller层类中的方法上,Controller层的类开始实现具体业务,并根据业务逻辑调用相应的DAO层,DAO层接收请求并对数据库进行操作,DAO层由于是由持久层文件生成,因此,持久层文件中存放实体类文件和构造函数提供给DAO层。

图5 系统框架设计

2.4 数据库设计

本系统主要有五个实体,分别为用户、评论、文章、分类和标签,五个实体间的关系E-R图如6所示。

图6 E-R图

本系统使用的MySql进行数据库管理,根据本系统所需功能、逻辑业务对象的分析以及对象间的关系,对系统数据库进行了设计,如表1~表7所示。

(1)文章信息表。文章信息表主要用于保存文章的具体信息,主要字段包括:文章ID、用户ID、标题、内容、访问量、评论数、点赞数、状态、排序值、更新时间、创建时间、摘要、缩略图。表结构如表1所示。

表1 文章信息表

(2)用户评论信息表。用户评论信息表主要用于保存用户评论文章的内容及发表评论和被评论文章的信息。主要字段包括:评论ID、上级评论ID、上级评论名称、文章ID、评论人名称、评论人邮箱、评论人个人主页、评论人头像、内容、评论时间、是否为管理员、用户ID。表结构如表2所示。

表2 用户评论信息表

(3)用户信息表。用户信息表主要保存用户的具体信息。主要字段包括:用户ID、用户名、密码、昵称、邮箱、个人主页、头像、注册时间、上传登录IP、上传登录时间、状态、角色。表结构如表3所示。

表3 用户信息表

(4)文章分类信息表。文章分类信息表主要保存文章分类标签的信息。主要字段包括:分类ID、分类父ID、分类名称、排序值、图标。表结构如表4所示。

表4 文章分类信息表

(5)文章标签信息表。文章标签信息表主要保存文章小标签的信息。主要字段包括:标签ID、标签名称。表结构如表5所示。

表5 文章标签信息表

(6)文章与分类标签链接关系表。文章与分类标签链接关系表主要保存文章和对应分类标签的关系。主要字段包括:文章ID、分类ID。表结构如表6所示。

表6 文章与分类标签链接关系表

(7)文章与标签链接关系表。文章与标签链接关系表主要保存文章和对应小标签的关系。主要字段包括:文章ID、标签ID。表结构如表7所示。

表7 文章与标签链接关系表

2.5 对象设计

本系统的主要功能包括发表文章、评论文章、文章分类、浏览平台内容以及管理员对平台用户、文章、分类标签的管理等,由于篇幅有限,下文仅对发表文章和评论文章两个模块进行详细设计。

2.5.1 发表文章用例对象设计

用户登录成功后可以在用户后台发表文章,在后台编辑文章的界面中输入文章内容、选择文章对应的分类和标签,所有的信息通过post请求发送给对应Controller层 的ArticleController类、CategoryController类和TagConrtroller类, 然 后ArticleController类通 过InsertArticle( )方 法 发 送 给ArticleService,CategoryController类通过InsertCategory( )方法发送给CategoryService,TagConrtroller类 通 过InsertTag( )方法发送给TagService,然后各Service层发送给持久层写进数据库,由此,ArticleService通过更新后的持久层拿到新文章及其具体信息,Controller层将新数据发送给前端页面显示新文章。发表文章用例实现顺序图如图7所示。

图7 发表文章用例顺序图

2.5.2 评论文章用例对象设计

用户登录成功后可以在文章阅读界面发表评论,首先界面显示文章信息,用户阅读完后输入评论,评论通过post请求发送给Controller层的CommentController类,CommentController类通过AddComment( )方法发送给CommentService,然后发送给持久层写进数据库,CommentService通过更新后的持久层拿到评论内容,Controller层将评论发送给前端页面显示。评论文章用例实现顺序图如图8所示。

图8 评论文章用例顺序图

3 系统实现

3.1 文章发表功能

本系统第一个核心功能是文章发表功能,该功能能使平台内容丰富,实现用户间学习交流的重要功能之一。用户登录账号后,进入后台文章编辑界面,编辑文章内容,选择文章分类和标签信息,点击提交即可发表文章。Mapper层实现部分代码如下:

3.2 评论文章功能

4 结语

本文总结了IT知识学习交流平台的系统分析、设计与实现的全过程,系统最终实现了用户发表浏览文章、评论交流、文章分类等功能,为IT学习者提供了很好的学习交流平台。本项目主要有两个特点:

(1)业务逻辑上简明直接,目标用户设定准确,以IT知识学习者为主,为IT知识学习者提供了一个专门学习交流IT知识、梳理学习路线的平台,目前网络上虽然有类似的平台,比如:CSDN,但是CSDN没有梳理好学习路线,本平台在实现CSDN的大部分功能的情况下,结合自身学习的状况,整理出了一条适合大部分初学IT知识的学习路线。总体而言,本系统可以填补市场空白,有着广阔的发展空间。

(2)程序上,由于使用了Spring+SpringMVC+ Mybatis框架(SSM框架),使得项目十分精简,降低了每个模块之间的耦合度,便于后期维护,达到了系统的设计目标和整体要求。

猜你喜欢

发送给交流平台框架
框架
【微信小课堂】:如何向好友发送语音
浅谈框架网页的学习
基于Jmeter对Node框架性能的测试研究
交流平台
交流平台
你说我说大家说
交流平台
公告
交流平台