基于SpringBoot的社交平台的设计与实现毕业论文.docx
《基于SpringBoot的社交平台的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于SpringBoot的社交平台的设计与实现毕业论文.docx(42页珍藏版)》请在冰豆网上搜索。
基于SpringBoot的社交平台的设计与实现毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
社交平台体现了以用户为中心的理念,对广大社会交流沟通起着非常重要的作用。
该平台主要包括用户内容、管理员审核两大模块。
通过用户发表内容到管理员审核再到其他用户浏览内容;用户资料管理到管理员审核;用户推荐的三大主要过程解决了一些在实际中遇到的用户注册泛滥,用户传播不良思想和发表内容违规等矛盾,真正做到了用户与用户之间健康交流,文明交流的目标。
关于社交平台的设计与实现的整个流程中,由社交平台的确立系统目标开始,对系统进行总体需求分析、系统功能需求、系统非功能需求还有业务流程分析,之后对系统进行概要设计和详细设计、对系统功能实现和系统测试运行。
本文针对毕业设计的需求,应用SpringBoot框架开发社交平台,使用MySQL数据库进行关系数据库管理,采用了MD5加密算法对程序进行加密,使用了通过SpringBoot其自身带有的容器tomcat对平台进行前后端之间的数据交互,将MyBatis作为SpringBoot的持久性框架,Maven作为项目开发包管理工具。
关键词:
社交平台MySQLSpringBootMyBatisMaven
Abstract
Socialnetworkingsitesembodytheideaoftakingusersasthecoreandplayanimportantroleinsocialcommunication.Theplatformmainlyincludestwomodules:
usercontentandadministratoraudit.Thecontentpublishedbyusersisreviewedbyadministratorsandthenbrowsedbyotherusers.Userdatamanagementtoadministratorreview;Thethreemainprocessesofuserrecommendationhavesolvedsomecontradictionsencounteredinpractice,suchastheproliferationofuserregistration,thedisseminationofbadideasandtheviolationofpublishedcontent,andhavereallyachievedthegoalsofhealthyandcivilizedcommunicationbetweenusers.Inthewholeprocessofdesigningandimplementingthesocialplatform,startingwiththeestablishmentofthesystemgoalofthesocialplatform,theoverallrequirementanalysis,thesystemfunctionrequirement,thesystemnon-functionrequirementandthebusinessprocessanalysisarecarriedout,andthenthesystemisbrieflydesignedanddetaileddesign,thesystemfunctionrealizationandthesystemtestoperationarecarriedout.Accordingtotherequirementsofgraduationdesign,thispaperusesSpringBootframeworktodevelopasocialplatform,MySQLdatabasetomanagerelationaldatabases,MD5encryptionalgorithmtoencryptprograms,tomcat,SpringBoot'sownservercontainer,toexchangedatabetweenthefrontandbackoftheplatform,MyBatisaspersistenceframeworkofSpringBoot,Mavenasaprojectdevelopmentpackagemanagementtool.
Keywords:
SNSMySQLSpringBootMyBatisMaven
第一章绪论
1.1研究背景
当今时代科学技术不断向前蓬勃发展,互联网科技也在不断的创新过程中逐渐发展,越来越多的计算机科技和互联网产品随之而来,现代网络技术和网络多媒体技术逐渐发达,社交平台已经成为当下互联网网络产品领域必不可少的一部分。
社交平台网络代替了以前非常传统的邮箱信件,拨打电话等社交方式,通过网络的通信交流形成的平台。
网络不仅仅使带给人们一个广阔的社交渠道,还帮助人们拥有可以创造自己形象的可能。
在这么一个社交环境下,人们可以通过多种多样的交流工具,或者多种多样的社交帐号为自己提供多种多样的交流方式和传播方式,还可以通过完全不一样的社交群体沟通交流,在各个不相同的地点传播信息并且融入各种各样的群体,吸收各种各样的文化环境。
社交平台的到来,为人们提供多种多样的便利,新型的购物型社交平台带来的购物便利,新型的媒体型社交平台带来的媒体便利和新型的实名制社交媒体带来的信息便利。
总而言之,现如今的社交平台已经成为了人与人之间强大的必要的特殊交流方式。
1.2开发目的
如今是互联网数据信息化时代,人们逐渐地改变了以往的社交模式,向大数据信息化时代变迁。
现在的用户更多的需要个人的实名制和个人身份审核,越来越多的媒体趋向于短视频,短文章的发布,越来越多的购物平台需要以社交方式传播,其原因是大数据网络技术的信息化、数据化的过程。
社交平台是以社会化,信息化,数据化的方便快捷有效的信息数据传播和交流实现的网络平台,其允许用户上传信息,评论交流,分享链接,即时沟通的平台。
具有以下好处:
一是有助于人与人之间的信息技术交流,提高人们的知识水平和竞争水平;二是有助于人与人之间跨越地域与语言的实事传播,扩充了人们的眼界;三是有助于人与人之间的经验交流不再仅仅是局限于抽象的文字交流,而是直接地通过照片和视频的真实情况告诉人们这件事情或者分享这件事情的经验,以更有效地方式让人们理解,快速地提高了人们的经验和能力
1.3开发作用
现代社会,由于社交平台的不断发展壮大,越来越多的知名社交平台出现了越来越臃肿的问题,也出现了其娱乐性越来越泛滥的问题,出现了大量的粉丝诋毁其他人的不文明现象。
这使得本社交平台的诞生意义越来越明显,本项目的开发是为了解决实际中出现的不文明现象越来越多的问题。
那么如何解决这一大痛点,实际就是通过减轻平台的娱乐性,向帮助人们学习提升的角度去实现并且加大后台管理人员审核目标,对不良现象加以改进,从而达到实现这一问题的解决目标。
1.4论文主要内容
本论文使用了当下流行已久的Java编程语言,并且基于SpringBoot框架开发一个B/S结构的社交平台,主要工作有以下几个方面:
(1)调查社交平台的产生背景,分析开发此平台的目的和意义。
(2)调查开发社交平台所需要的技术,进行技术的需求分析。
(3)分析此平台的需求文档之后,对比一些优良的架构和实现,对系统描述出概要的设计。
(4)对社交平台的详细设计进行描述,其中包含有功能模块和界面设计等等。
(5)对社交平台的实现,测试和发布。
(6)总结论文,包括对社交平台的技术总结和未来期望并简要讲述自己的成果。
1.5论文结构简介
(1)第1章介绍了社交平台的研究背景,论文的内容和结构,开发的目的和开发用处。
(2)第2章简单的讲述了社交平台所需要使用的开发用具和技术。
(3)第3章介绍社交平台的系统分析。
(4)第4章介绍社交平台的概要设计。
(5)第5章的内容是社交平台的详细设计与实现。
(6)第6章的主要内容是社交平台的测试运行。
(7)第7章是对社交平台的结论。
第4章到第5章是本论文的主要内容
第二章开发工具与技术简介
2.1开发工具简介
该项目开发环境为JDK1.8,管理工程的软件使用Maven,前端主要使用JSP,由MyBatis作为面向对象的persistenceframework,后端使用SpringBoot,数据库需要的软件是MySQL,开发工具使用IDEAIntellij2019.3.3使开发效率更高。
2.2开发技术简介
2.2.1SpringBoot简介
该项目利用了SpringBoot框架做开发后端,SpringBoot作为一个由Java语言来实现的框架,它可以很好的用来建立微服务的项目工程。
开发这个框架的团队叫PivotalTeam,它是用来创建独有的并且用来开发就绪的Spring工程应用。
SpringBoot能够很好的帮助Java开发工程师开发一个不错的应用平台,可以使工程师们建立一个独有的、工厂级别的Spring应用工程,并且可以让使用者直接运行程序。
工程师可以在最小的配置文件里开始配置,这样就不用在更加繁杂的Spring下进行完全的配置。
SpringBoot框架为工程师们提供了许多的帮助和优化,例如:
使Spring应用程序的代码理解和业务开发更简便,更加有效地提高工作效率,更加减少了项目开发的很多时间。
2.2.2Docker简介
通过Docker部署JDK1.8和MySQL5.7等提供了项目的开发环境和数据库环境,工程师和系统管理员能通过Docker容器更方便地搭建、启动和上传下载容器的应用。
利用这个将容器内的软件搭建起来的过程,可以把它叫做容器化,这个搭建应用程序的方式已经是现代互联网发展中非常常见的了,但是它们能使以前的常用的部署方式变得更加简单便捷,以前浮躁地搭建环境的方式已经不再是问题,容器化这一非常能够抓住开发者们的痛点,这让容器化在现代互联网发展中越来越流行,正是因为容器化有以下众多好的特性:
弱耦合性:
容器是高度独立且封装好的类型,这能在开发者独立地升级或改变容器时毫不影响其他容器的运行。
轻盈性:
Docker能通过主机系统很好地发挥主机系统的资源,这更能体现出容器化的强大。
可变性:
能让非常繁杂的程序也可以进行部署。
安全性:
能够不需要开发者手动地进行容器配置下,很好地限制和区分开容器的应用程序过程。
便携性:
容器可以在本地系统中建立好并且上传到Docker官网上随时便携地下载到其他主机上。
开放性:
开发者能够使容器副本开放式地添加和自动化部署。
2.2.3MyBatis简介
MyBatis是目前开发者社区中主流的持久化框架,自定义化数据库存储流程和数据库映射是Mybatis的基本功能。
它的优点是能够几乎摆脱了开发者日常使用jdbc代码过程中浮躁的手动参数配置和手动检索问题。
通过注释或者通过*.xml文件格式下编写更加简单易懂的XML格式的代码解决了以上这一开发者的痛点。
第三章系统分析
3.1系统需求分析
3.1.1系统总体需求
业务需求:
全球约24亿人经常访问网络,人们的日常生活中逐渐被网络生活给占用,从而导致兴趣圈逐渐缩小,对现实世界有很大的影响,社交成为很多人的难题。
但和一些现实活动中的传统活动比起来,现实中的活动和网络上的活动结合起来会更加的方便快捷。
社交平台网站的最为普遍广泛的用户群是大学生,在大学生的观点来看,社交平台网站除了网络日志等这些常用的基础功能是远远不行的,还需要有用户实际真正有需求的高级应用。
因此开发者们要是想要开发与大学生群体有关联的应用平台,就必须熟悉认识到大学生这一群体他们真正想要的是什么,最为迫切需要的东西是什么,而不能仅仅看表面上功能很多界面很好就能一蹴而就的,经过网络调查发现得出,休闲娱乐相关的类型是大部分大学生一直以来生活上的需求,因此开发社交平台不仅是让他们获得自己的个人世界的需求,还要在实际生活上有所关联。
3.1.2系统的功能需求
通过对系统的需求分析了解到,该系统总共有5大模块,2种角色,根据系统五大模块可以分为:
(1)内容模块:
主要有文字的发表,视频的发表,图片的发表,消息通知,点赞收藏评论等功能。
主要是文字视频和图片的分离式发表,文字为一个区域,视频为一个区域,图片为一个区域,更加体现出用户更加喜欢哪个内容类型的表现形式而不显得内容过于冗杂。
(2)好友模块:
主要有好友关注,好友信息等功能。
(3)推荐模块:
主要有用户推荐,内容推荐等功能。
根据用户的喜好和设置来进行推断好友和内容的推荐方式。
(4)用户管理模块:
主要有账号管理,手机绑定,个人资料,好友管理等功能。
主要是根据用户自己的真实信息填充相应的真实资料情况。
(5)后台管理模块:
上传内容审核,用户信息管理,发表信息管理,点赞信息管理,用户推荐管理,好友管理等。
只要是对用户的基本信息,权限,推荐信息,内容发表信息进行相应的管理,不同用户会有不同样的角色成员,每个角色成员就对应了不同的角色权限。
根据以上系统需求分析得出,可以将系统的相关角色和系统功能画出如下系统功能用例图,如下图3-1:
图3-1系统功能用例图
3.1.3系统的其他需求
(1)系统吞吐量TPS:
TPS每秒不小于100。
(2)平均响应时间:
规定有100个请求,那么请求平均花费时间应该在1000-2000ms之内。
(3)安全性:
用户在请求所有的输入时,系统应该将这些请求做安全性相关检测,在出现安全漏洞和安全问题时必须要解决这些问题。
(4)数据可用性:
为了能够达到使用数据库的存储的目标,系统的所有有关数据应该兼容可用配置。
3.2业务流程分析
由系统功能需求和调查得知系统的业务流程主要有三种流程,通过用户发表内容、管理员审核内容、其他用户收藏内容,收藏成功或其他用户点赞内容,点赞成功或其他用户评论用户、管理员审核、评论成功三个过程。
具体流程图如图3-2-1所示
图3-2-1业务流程图
3.3本章小结
系统的业务流程分析与需求分析是该章主要内容,在需求分析中主要介绍了开发此平台的用户痛点,本平台应该实现的功能模块以及本平台在运行中应该满足的非功能需求。
还有本平台最主要的业务流程分析。
第四章系统的概要设计
4.1系统逻辑架构
基于MVC架构的实现是本文逻辑架构的基本思想,具体的架构分层如下所示:
(1)用户层:
是平台的主角,包括用户和管理员。
(2)表现层:
表现层主要使用了JSP技术,用户通过操作某一JSP来操作
系统,如FrendsList.jsp,VideoLikes.jsp,Recommendation.jsp等。
(3)服务层:
该层是为系统提供中心模块的服务内容,如Frends服务,Recommendation服务,Video服务等服务接口类,经过用户在前端的页面请求,将请求放回给后台处理结果,最后将结果返回给前端页面。
(4)数据存储层:
在数据库中,使用了Mysql关系型数据库进行存储。
为了缓存后台产生的数据,帮助提高系统性能,因而使用Redis。
系统的逻辑架构图如下图4-1-1所示:
图4-1-1系统逻辑架构图
4.2系统功能模块划分
本系统主要由5大模块和其他子模块,五大模块分别是内容模块,好友模块,推荐模块,用户模块,后台管理员管理模块。
系统模块及其子模块如下:
(1)好友模块:
主要包括好友的管理(增加,删除,查询),好友资料的查看,好友内容发布查看。
(2)推荐模块:
主要包括好友推荐的推荐原因,推荐时间,推荐用户名称。
(3)用户模块:
主要包括用户信息资料,我的好友查询,修改个人资料,修改密码,我的收藏。
(4)内容模块:
主要包括文字发表,视频发表和图片发表。
(5)管理系统模块:
管理系统模块是帮助后台管理员更好地管理系统后台的相关信息,能够对每个用户角色对应的各种权限的管理,还有管理用户发表内容的审核,管理用户评论内容的审核,管理用户注册信息的审核等。
通过以上信息可画出系统功能模块图如下图4-2所示:
图4-2系统功能模块图
4.3系统的数据库设计
(1)实体E-R图设计
利用E-R图对数据库的相关信息进行设计,首先针对用户为实体具有以下属性:
编号,用户名,密码,姓名,性别,出生年月,电话,邮箱,创建时间如下图4-3-1所示
图4-3-1用户实体E-R图
针对好友,具有以下属性:
编号,用户编号,姓名,性别,电话,添加人,创建时间如下图4-3-1所示
图4-3-2好友实体E-R图
把评论当做实体,针对评论为实体具有以下属性:
编号,评论内容,评论人,评论时间如下图4-3-3所示
图4-3-3评论实体E-R图
用户收藏内容的这一过程,可以把收藏夹当做实体,针对收藏夹具有以下属性:
编号,用户名,标题,链接,创建时间如下图4-3-4所示
图4-3-4收藏实体E-R图
用户发表文字内容,把文字内容当做实体,针对文字内容具有以下属性:
编号,文字主题,文字内容,发表人,点赞量,创建时间,是否审核如下图4-3-5所示
图4-3-5文字内容实体E-R图
用户发表图片内容,把图片内容当做实体,针对图片内容具有以下属性:
编号,图片主题,图片,发表人,点赞量,创建时间,是否审核如下图4-3-6所示
图4-3-6图片内容E-R图
用户发表视频内容,把视频内容当做实体,针对视频内容具有以下属性:
编号,视频主题,视频,发表人,点赞量,是否审核,创建时间如下图4-3-7所示
图4-3-7视频内容E-R图
1)Users用户表如下表4-3-1所示:
表4-3-1用户表
字段名称
数据类型
长度
是否为null
解释
uid
int
10
否
用户编号
name
varchar
49
否
用户名称
realname
varchar
50
否
真实姓名
sex
varchar
4
否
性别
birthtime
varchar
100
否
出生年月
phonenumber
varchar
45
否
电话
addtime
timestamp
50
否
创建日期
2)Friends好友表如下表4-4-1所示:
表4-4-1好友表
字段名称
数据类型
长度
是否为null
解释
fid
int
11
否
好友编号
usersid
int
11
否
用户编号
name
varchar
50
否
好友名称
realname
varchar
50
否
真实姓名
sex
varchar
4
否
性别
concerned
varchar
50
否
添加人
phonenumber
varchar
45
否
电话
addtime
timestamp
50
否
创建日期
3)收藏列表Collects如下表4-5-1:
表4-5-1收藏列表
字段名称
数据类型
长度
是否为null
解释
colid
int
11
否
收藏编号
usersid
int
11
否
用户编号
url
varchar
255
否
链接
title
varchar
100
否
标题
addtime
timestamp
50
否
创建日期
4)评论表Comments如下表4-6-1:
表4-6-1评论表
字段名称
数据类型
长度
是否为null
解释
comid
int
11
否
评论编号
commentator
varchar
50
否
评论人
contents
varchar
255
否
内容
addtime
timestamp
50
否
创建日期
5)文字内容表Writtings如下表4-7-1:
表4-7-1文字内容表
字段名称
数据类型
长度
是否为null
解释
wid
int
11
否
内容编号
title
varchar
50
否
标题
contents
varchar
255
否
内容
likes
int
11
否
点赞量
isverify
varchar
10
否
是否审核
addtime
timestamp
50
否
创建日期
6)图片内容表Pictures如下表4-8:
表4-8图片内容表
字段名称
数据类型
长度
是否为null
解释
pid
int
11
否
图片编号
title
varchar
50
否
标题
contents
varchar
255
否
内容
likes
int
11
否
点赞量
isverify
Varchar
10
否
是否审核
addtime
timestamp
50
否
创建日期
7)视频内容表Videos如下表4-9-1:
表4-9-1文字内容表
字段名称
数据类型
长度
是否为null
解释
vid
int
11
否
视频编号
title
varchar
50
否
标题
contents
varchar
255
否
内容
likes
int
11
否
点赞量
isverify
Varchar
10
否
是否审核
addtime
timestamp
50
否
创建日期
4.4本章小结
第四章讲述了系统的概要设计,其包含系统功能模块和逻辑架构设计,并对其相关模块进行细节的划分和主要的数据库设计。
第五章系统详细设计和实现
5.1登录页面
5.1.1验证码实现
在登录模块上,是需要有验证码对用户是否为人机进行检验的,通过BufferedImage,Graphics和String类很好地实现了随机的验证码,将验证码图片存在img中并且生成到页面。
验证码控制器核心代码实现:
/**
*验证码控制器
*/
@Controller
publicclassCaptchaControllerextendsBaseController{
/**
*输出验证码图片,并记录session“random”里等待登录时写入
*/
@RequestMapping("/captcha")
publicStringIndex()
{
response.setContentType("image/jpeg");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
intwidth=61,height