基于SpringBoot技术的论坛系统设计与实现Word文档格式.docx
《基于SpringBoot技术的论坛系统设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于SpringBoot技术的论坛系统设计与实现Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
随着现代社会科技的快速全面发展,技术越来越成熟,人们的生活变得越来越便利。
快捷的互联网诞生了众多方便人们生活的网站和系统。
计算机技术的高速发展使得人们的工作效率越来越高,在网络上跟人交流沟通也越来越方便,人们可以在网站上方便、快捷、随意地分享自己的趣事,很多不同的网友也可以对版主发布的内容进行客观、实在的评价或者探讨对各种事物的不同看法;
当然人们也可以直接在网络上学习各种先进的技术、各种适合自己的思想、观念,碰撞出不一样的火花;
人们可以把自己的疑难问题发布到网上,大家集思广益,也会有不一样的收获。
本系统的设计目的主要是为了方便同学们在论坛上进行沟通,与网友进行思维碰撞。
方便大家在学习生活上有疑难的时候可以询问他人。
1.2在线论坛的发展状况
网上论坛,英文简写BBS。
随着计算机的普及,难免会出现多人同时拨号一个站台的问题,急待着科技发展解决这个问题。
虽然后面出现了多线站,但是真正给国内论坛发展带来革命性转折的人,是戴志康,他发布了软件Discuz,使得论坛的构建变得简单便捷。
自此以后国内的论坛越来越多,也越来越追求专业性以及功能性,追求页面简洁美观,我们现在耳熟能详的新浪、猫扑等等大型的论坛就是那个时候开始的。
我国的论坛的发展分为两个阶段,1996年是一个分水岭,在这之前虽然论坛也在快速发展,但是以为操作繁琐等一下原因导致受众不多;
1996年之后因为技术上的革新使得论坛的构建变得简单,操作也变得简单,导致越来越多的人群习惯了在论坛上谈论实事,讨论观点,在这之后中国的网上论坛迎来了高速、跳跃式的发展。
1.3开发设计思想
随着互联网技术的不断革新,看着我之前很喜爱的网上论坛变得越来越末路。
我想在毕设的时候做一个网上论坛系统来怀念我的青春;
在信息时代,网上的信息越来月碎片化,导致很多人都没有逛论坛的习惯,很多的疑问可以直接XX查找答案,人们变得越来越没有耐心,虽然互联网的发展拓宽了人么了解知识的渠道,但是也打破了人与人之间的联系。
现在很多的论坛已经越来越式微,依旧蓬勃发展的可能只有知乎所代表的这一类‘后现代论坛’了吧。
我想把这个系统做成论坛最开始的模式,只有问者跟答者的关系,只有做的纯粹才是我的想法。
本文系统采用SpringBoot技术进行开发、Html模板引擎使用的是thymeleaf;
java具有跨平台的优点是现阶段最热门的开发语言;
使用springboot技术的一大好处就是spring具有很完善的生态圈,可以很方便的直接在官网找到想要使用的技术或者spring的产品;
论坛系统能够实现的功能有:
第三方登陆、提问发帖、浏览、评论回复、回复提醒、编辑帖子和删除自己的提问的功能;
管理员对于论坛的管理包括删除违反互联网规定的提问帖,以及删除不合适回复,管理论坛的会员信息等。
2.开发技术简介
2.1SpringBoot技术简介
论坛系统设计中使用的开发框架是Spring社区开发的架构SpringBoot,现在市场上非常多的公司也在使用它,足以说明它的优点,它旨在简化构建和开发一个大的Spring项目的过程,在保证原有Spring(IoC和AOP)的两个优秀特性的前提下,按照约定优于配置的方法使应用程序开发人员能够简化大部分配置,从功能上讲,SpringBoot并不是一套全新的J2EE架构,SpringBoot正是在Spring内核的基础上集成了相关功能组件,实现了自动配置,降低了项目后台搭建的复杂性。
2.2java语言介绍
Java是一款目前流行性很强的开发语言,无论在手机方面还是互联网方面,Java都应用广泛。
这一款语言和C++很像,但Java摒弃了C++中很少使用的一些特征,继续保持C++语言受人们喜欢的一些优点:
快速、安全。
在使用Java进行开发程序时,Java面向对象的特点,可以让开发人员简单的使用,省去一些没有必要的操作,这样一来就可以节约时间,让开发人员可以用更多的时间精力来进行程序的研究。
Java能够实现程序的跨平台运行,使用的运行环境不是编译执行,而是解释执行的方式,能够分辨硬件平台的不同,将程序解释成目前的机器码。
2.3Mysql数据库简介
这次设计的论坛系统后台使用的是MYSQL这一款非常强大数据库系统,这是一款当下颇为流行的数据库,现在它是Oracle公司的,相比其他数据库,它的开放性和快速性以及多线程性,使得人们在建设网站时更喜欢使用它。
MYSQL的优点显著,MYSQL无论在Unix,还是Linux以及Windows上,都可以工作,能够根据不同的语言来提供API函数。
用MYSQL能够构建多个数据库表,这样能够使程序运行更快,数据更安全。
3.系统可行性和需求分析
3.1可行性分析
3.1.1技术可行性分析
技术可行性分析主要是评估以目前的技术条件和开发者掌握的技术能力水平,能否满足系统的使用条件和需求。
个人比较熟悉java语言以及springboot技术的项目构建和代码编写,在技术条件方面没有遇到什么问题,thymeleaf模板引擎是一款非常适合前端人员使用的技术,之前有使用过这门技术来设计前端项目页面。
整体来说,开发者技术水平跟软件的灵活性、安全性和易用性都是满足系统平台的开发需要的。
3.1.2运行可行性分析
运行可行性分析即系统对组织及人员的适应性分析;
论坛系统的受众群体为习惯在网上论坛进行分享、评论和聊天的用户;
在现在的论坛系统中比较热门的是XX的XX贴吧、知乎两个头部应用;
这两个论坛现在还是具有很大的日活量。
本系统也将围绕着这些因素来设计,通过B/S架构来实现。
3.1.3经济可行性分析
经济可行性分析包含市场需求、配套成本、资源供应。
要让用户在网上更容易,更快地发布帖子,开发能够满足人们在线交换信息的需求,本文章所研究的系统经济成本很低,用户只需在本地安装通用的Web浏览器,然后在浏览器中登录论坛进行浏览,发布,回复和其他操作;
以下是分别说明这些因素:
市场需求:
现在网上的论坛以XX贴吧、知乎为头部应用;
在XX指数中可以查看到这两个应用的搜索指数:
其中XX贴吧在近一个月的搜索日均量为28303次;
知乎在近一个月的搜索日均量为216087次;
可以看出现在论坛系统的使用人数还是非常庞大的。
XX指数-“XX贴吧”
XX指数-“知乎”
配套成本:
论坛系统暂时还没有上线,因此对成本的需求不大,只需要在本地的服务器就可以使用。
资源供应:
论坛系统的目标资源供应是‘自给自足’,由论坛的用户产生资源吸引新的用户进入产生新的内容。
3.1.4操作可行性分析
论坛系统的目的是给用户提供了一个网络环境良好、有利于用户沟通交流的平台。
登录系统后的用户可以浏览帖子、发表帖子、回复帖子、编辑帖子、搜索帖子,这是作为一个论坛系统最基础的功能,本系统提供了很良好的操作性。
论坛系统的用户分为两个角色:
用户、管理人员。
每类用户有不同的操作权限,用户具有论坛系统的大部分权限;
管理员则拥有最高权限;
系统通过提供不同的操作页面功能来实现两个角色不同的操作。
3.2需求分析
3.2.1功能分析
一个论坛重要且基础功能是让用户可以浏览帖子,发布帖子,回复帖子,以及搜索帖子。
同时,我们国家的互联网要求规定用户发布的帖子内容应该是健康合法的。
系统的管理员应该借此加强对帖子的审阅,以防止不良内容的产生,不让本系统成了网络上藏污纳垢的地方。
如果用户想在论坛上发布,则必须注册并登录。
此外,必须将论坛分成多个部分,以方便区分发布和内容,并使管理员能够方便地管理发布。
此外,用户必须分成不同的级别如普通用户和管理员用户,用以加强论坛的管理。
论坛要实现帖子管理,也要实现用户管理,同时要考虑不同功能模块之间的协调与合作,以共同完成基于SpringBoot的论坛系统的业务需求。
本论坛系统可能需要设计的功能有:
用户注册功能,用户登录功能,发表主题功能,回复帖子功能,查询帖子功能,浏览帖子功能,个人信息设置功能,后台管理功能。
确定论坛系统的功能为:
游客登录注册、发布提问帖子、浏览帖子、删除自己的帖子、搜索帖子;
管理员删除帖子、管理员删除信息;
功能分析:
对于论坛系统最重要的就是可以让用户正常的对帖子进行‘增删改查’操作。
管理员功能是为了维护系统的网络环境绿色合法所以要保证管理员必须要有对帖子的的删除和对用户的信息删除权限。
1、用户登录功能
使用的是github的api调用了github的数据库资源,实现了第三方应用的登录功能;
界面简洁耐看,与开放api的沟通良好,提高了用户的体验感。
2、提问功能
用户的主要需求就是进入系统后,能够进行发帖提问和评论回复功能,设计风格应该简洁、美观大方、操作方便。
4、回复帖子功能
系统首页的右上角有代办提醒会收到别的用户评论自己的帖子或者回复自己评论之后的提醒,查看详情之后点击跳转到详情的帖子页面。
5、查询帖子功能
输入关键字之后可以搜索匹配到帖子title符合的内容,点击之后可以进入详情页面。
6、浏览帖子功能是为注册登录的用户提供浏览帖子的功能。
设计风格应该简洁、美观大方、操作方便。
3.2.2用例分析
通过对系统中管理员和用户之间关系可以得出系统用例图:
用户的主要功能是浏览帖子、发表提问、评论和回复帖子。
管理员的主要功能是管理用户信息;
管理帖子,删除不符合互联网规定的帖子。
系统整体的用例图如3.1所示:
图3.1系统用例图
1.用户登录用例分析
游客初次登录系统需要进行注册操作、注册包括系统注册、以及第三方登录
注册论坛系统;
第三方登录使用的是github;
系统注册需要填写账号密码以及邮箱;
账号是唯一存在,注册填写时会进行校验,邮箱是用来忘记密码是找回的。
图3.2用户注册用例图
以用户注册用例为例子,详细的介绍了系统的业务流程,当用户首次进入系统,打开页面完成登录后就可以正常访问此系统,但之后不需要再登录,因为系统会根据session保存的信息进行常态化登录。
2.系统登录用例分析
已经注册用户或者管理员,每次进入系统只需要点击登录就可以进行常态化登录,不需要输入账号密码;
登陆成功后将进入首页。
登陆成功的用户权限是浏览帖子,回复帖子,评论帖子,删除自己的帖子。
管理员界面可以进行的操作除了正常用户的增删改查操作还有删除所有帖子的权限以及管理用户信息的权限。
系统登录用例图如图3.3所示。
图3.3系统登录用例图
登陆成功后会使用token来验证用户是否登陆成功,类似与vue的全局路由守护;
以注册的用户和管理员登录例子来举例分析,详细介绍登录的全过程,来分析登录的详细步骤,很大程度上加大了系统的安全性和优化了用户使用感受。
3.用户操作帖子用例分析
用户正常登录之后就可以进行正常的系统功能操作,登录后可以先浏览帖子,对有兴趣的帖子参与回复的讨论中,类似于在线交流,如果个人有独到的见解,也可以单独发表一篇帖子,在‘提醒’的代办中能查看别人对自己的回复以及跳转目标贴子、可以删除自己的帖子、可以重新编辑自己发布的帖子信息。
用户操作帖子用例图如图3.4所示。
图3.4用户操作帖子用例图
以用户操作帖子为例,描述用户操作帖子的整个流程,在用户提交发布之后会在首页显示,别的用户可以正常的查看会评论。
实现了不同用户之间的交流数据传输,优化了每个用户的使用感受,有利于信息的传播和知识的分享。
4.管理员操作帖子用例分析
管理员通过登录后进入首页,先浏览全部的帖子,经过审核之后将不符合互联网规定或者将没有意义但是占据系统大量存储空间的灌水贴进行删除,对发布不良信息的账号进行屏蔽删除。
管理员操作帖子用例图如下图3.5所示。
图3.5管理员操作帖子用例图
以管理员操作帖子为例,描述管理员管理帖子的整个流程,帖子的来源并无严格的要求,这就要求管理员要进行公平的审核,对不符合互联网规定、没有意义的灌水贴的贴子进行删除,对发布不良信息的贴主进行删除信息;
从而净化论坛的内容,使帖子在内容上质量更高。
3.2.3业务流程分析
1.用户模块
用户模块用来实现用户的登陆注册操作。
该模块的作用是实现游客或者管理员登录进入系统;
注册的方式有两种,一种是系统注册,一种是使用第三方登录(暂时只有github)系统。
用户注册:
游客需要进行注册之后才能正常的登录系统。
用户登陆:
用户需要验证系统保存的账号密码信息,验证成功之后就可以登录进系统进行正常的操作;
登录包括论坛系统登陆以及第三方系统登陆;
首次登录需要进行账号密码验证,后面就不需要了,因为系统实现了常态化登录,通过把用户的账号密码保存在session中实现这一功能。
用户发表提问帖:
已经登陆的用户可以正常发帖。
用户评论回复:
已经登陆的用户可以通过浏览其他用户发布的帖子进行评论和回复别人的评论。
2.帖子模块
论坛最基本功能就是实现帖子信息的发布和浏览;
按照对提问帖操作的对象权限不同,对于帖子的操作分为两个模块,即登录用户操作模块和管理员操作模块。
用户操作模块:
(1)浏览帖子:
进入网站正常登录之后的用户以及未登录的游客都可以浏览帖子,看到感兴趣的话题,还可以发表自己的见解但是评论只对已经登录的用户开放,如果是未登录的游客将弹出提示登录的警告框,在技术层面上是用token来判断用户有没有登录,如果登录成功的话本地会保存系统返回的token,以方便实现页面跳转的时候进行判断,并且系统会在seeeion中保存用户的登录信息,以便下次登录的时候不需要再重新输入账号密码,可以直接进入系统。
很大程度的提升了用户的使用感受,优化了用户体验。
(2)帖子发布:
登录的用户如果有自己的想法可以选择发布帖子,发布页面集成了富文本输入框组件,可以输入文本、上传文件、输入表情;
文件将保存在数据库中,提供url地址进行访问。
论坛本身就是提供给用户一个交流沟通的平台。
(3)帖子回复:
以登录用户在首页的右上角有一个提醒的代办按钮,点击之后可以看到别的用户回复或者评论自己发布的内容;
点击详情之后可以跳转到该页面,需要指出的是,用户在进行发帖和回帖时候前提条件是需要先登录,帖子的发布和回复功能很好的说明了论坛的核心功能,在这个用户交流沟通的平台上,最基础也是最重要的就是这两个功能。
3.管理员模块
管理员模块:
管理员是系统最大权限的用户;
包括不限于对所有帖子进行删除操作;
对所有用户的信息进行修改和删除操作;
管理员是每个系统必要有的功能;
该角色可以保证在可视化页面对系统进行维护和管理;
有利于保证系统的稳定性和保证系统的生命周期得以延续。
管理用户模块:
该模块又包括对于用户的增加、删除以及设置用户权限。
其中设置用户权限是指给予某些普通用户一定的权限成为版主,协助管理论坛指定版面内的帖子。
这样为论坛管理引入领域专业人才,同时减轻管理员管理的负担。
4.数据库的概要设计
4.1数据库需求分析
数据库是数据的仓库,而数据是整个系统的基础以及重点;
在一个应用中如果没有数据,即使系统再花里胡哨也没有人会去使用,对受众群体没有任何的吸引力,因此应用的生命周期自然就短;
数据库设计遵循三方面原则:
一对一设计原则;
独特命名原则;
双向使用原则;
网络论坛系统是基于SpringBoot架构且采用MySQL数据库存储数据,实现了论坛系统数据的集中存储。
针对论坛系统,分别对用户、游客和管理员进行分析;
总结出如下的需求信息:
用户需要提问发帖,涉及到数据的存储;
用户需要评论回复帖子,设计到数据的存取;
用户需要删除所属的帖子,设计到数据的删除;
游客需要进行登录验证,设计到数据的存取;
管理员需要进行删除提问,设计到数据的存取;
结合上述的需求可以得出,论坛系统的数据库只需设计简单的CURD操作,不需要非常高深的数据库sql操作,因此结合可行性分析得出需要的数据库设计架构;
4.2数据库的逻辑设计
数据库逻辑设计就是数据库表的创建过程、结构以及结果,不同的逻辑设计对应不同的数据库设计结果;
结合以下内容论述论坛系统的数据库逻辑设计,尽量使用最简单最直接的方法达到目的,代表了最高效率最好的设计结果。
归于简单,归于直接的设计才能最好的体现架构的水平。
在这些论点中我将数据字典和ER图转换为数据库的模型就是数据库的逻辑设计,数据库逻辑设计起到前后呼应的作用,为后面的数据库的物理设计做充足准备。
用户:
用户编号、账号、密码、邮箱、头像图片地址;
管理员:
管理员编号、账号、密码、邮箱、头像图片地址;
提问帖:
编号、标题、主题内容、发帖人、发帖时间、标签;
回复帖子:
帖子编号、帖子状态、帖子回复数、创建时间、内容、回复内容编号、帖子归属用户编号;
常态化登录状态表:
文件表:
文件编号、文件名称、创建时间、文件保存地址
4.3数据库表设计
(1)用户表包括(id、姓名、密码、邮箱、性别、图像共5个字段,如下表4.1所示:
表4.1用户表
字段名
数据类型
字段大小
说明
Id
Int
11
Name
Varchar
250
姓名
Passwork
密码
Sex
50
性别
url
图像
Email
邮箱
(2)帖子内容表包括(id、标题、主题内容、发帖人id、创建时间、标签)共5个字段,如下表4.2所示:
表4.2帖子内容表
Title
标题
TopicContent
Text
4000
主题内容
Userid
发帖人id
Gmt_modifidy
Timestamp
6
创建时间
Bag
标签
(3)回帖表包括(帖子编号、帖子状态、帖子回复数、创建时间、内容、回复内容编号、帖子归属用户编号)共7个字段,如下表4.3所示:
表4.3回复帖子表
帖子编号
State
帖子状态
Count
帖子回复数
Time
Details
内容
Postid
回复内容编号
帖子归属用户编号
(4)板块标签表包括(模块号、模块名)共2个字段,如下表4.4所示:
表4.4板块标签表
BoardId
20
模块号
BoardName
模块名
(5)常态化登录状态表(用户编号、账号、密码、邮箱、头像图片地址、session储存记录
)共6个字段,如下表4.5所示
表4.5