基于SpringBoot 的技术论坛系统设计和实现.doc
摘要中国的互联网科技蓬勃向上,网友收集信息便利快捷,而且还向人们在舞台上充分表达自己,而论坛有较强的交互性,有高层次且具有个性化的需求。网络论坛发展的功能发展也随着互联网的更新而在不断的变化着,论坛的综合型逐渐变为现在的专业型发展, 所以需要在方便快捷的网络沟通背景下,建立一个属于技术小白和大牛之间的交流且简单干净的全民技术交流天地,是具有重要意义的。本系统采用SpringBoot框架进行设计和实现,而SpringBoot不需要XML配置且可以快速的开发,后台开发主要使用Tomcat、MySQL、Spring Data JPA、ElasticSearch、SpringSecurity框架,前端主要使用Thymeleaf、Bootstrap等技术来展示页面,并使用了开源性的Eclipse(JavaEE)集成开发工具来实现开发工作。本系统由用户和管理员组成,实现技术论坛系统的功能模块中的用户模块、帖子模块、评论模块、点赞模块、分类模块、标签模块、首页搜索模块合计8个功能模块。本文将会介绍如何基于SpringBoot技术设计和实现技术论坛系统,并实现技术论坛系统的基础功能。关键词: SpringBoot 技术论坛 设计与实现AbstractChina's Internet technology is booming, netizens collect information conveniently and quickly, and also fully express themselves to people on the stage, while the forum has strong interaction, high-level and personalized needs. The function development of the Internet forum is changing with the update of the Internet. The comprehensive type of the forum is gradually changing into the professional development. Therefore, it is of great significance to establish a simple and clean technology exchange world for the whole people, which belongs to the communication between technical Xiaobai and Daniel, in the context of convenient and quick network communication.The system is designed and implemented with the spring boot framework, which does not need XML configuration and can be developed quickly, The background development mainly uses tomcat, mysql, spring data JPA, elasticsearch, spring security framework, the front end mainly uses technologies such as thymeleaf, bootstrap to display the page, and uses the open-source eclipse (Java EE) integrated development tool to achieve the development work.The system is composed of users and administrators, and realizes 8 function modules in the function module of the technical forum system, including user module, post module, comment module, likes module, classification module, label module and home page search module.This paper will introduce how to design and implement the technology forum system based on spring boot technology, and realize the basic functions of the technology forum system.Key words: SpringBoot framework Technology Forum Design and Implementation广东东软学院本科毕业设计(论文)目 录1. 绪论11.1研究背景及意义11.2研究现状11.3存在问题11.4创新思路11.5本文的内容和组织结构21.5本章小结22. 相关平台和技术介绍32.1 系统平台32.1.1 Eclipse(JavaEE)32.1.2 MySQL数据库32.1.3 Gradle构建工具32.2 相关技术介绍32.2.1 SpringBoot框架32.2.2 ElasticSearch引擎32.2.3 Spring Data JPA技术32.2.4 Spring_Security安全框架32.2.5 Thymeleaf模板引擎32.2.6 Bootstrap框架32.3 本章小结43. 技术论坛系统需求分析53.1目标和任务53.2界面需求分析53.3功能需求分析53.4性能需求分析154. 技术论坛系统的系统设计164.1系统结构设计164.2功能架构设计164.3功能详细设计164.4数据库设计254.5本章小结285. 系统实现295.1系统实现架构295.2系统开发环境和运行环境配置305.3用户管理305.4安全设置315.5帖子管理325.6评论管理325.7点赞管理335.8分类管理335.9标签管理335.10首页搜索345.11本章小结346.系统测试356.1测试意义和目的356.2测试用例356.3测试结论406.4本章小结407. 结论41参考文献42致谢431. 绪论1.1研究背景及意义中国的互联网科技蓬勃向上,网友收集信息便利快捷,而且还向人们在舞台上充分表达自己,而论坛拥护强大的交互性,使用户可以对感兴趣的相关话题的即时性互动,比如咨询疑惑,分享经验,发布话题等。在生活质量的不断提高,用户对质量高、级别高、性价比高、体验好的事物要求不断提升。网络论坛发展也在不断的进步,功能发展也随着互联网的更新而在不断的变化着,论坛的综合型逐渐变为现在的专业型发展,所以需要在方便快捷的网络沟通背景下,建立一个属于技术小白和大牛之间的交流且简单干净的全民技术交流天地,是具有重要意义的。1.2研究现状网络社区门槛低,而我国的传媒体系和互动格局保证了网络互动性网站的繁荣。目前我国人口基数大,科技发展迅速,基本上每个成年人拥有一台智能手机或一台电脑,这也奠定了中国网民多,互动性网站发展空间大,沟通桥梁需求也大,而现在各式各样的网络互动性软件app更是数不胜数。针对论坛模块化,专业化,这样的群体数比同类型网站却少之又少,针对特定用户群体,可以在社会生活的方方面面得到体现,同时会对人们的生活习惯产生久而久之的影响。同时,技术专业性也可以增长个人的见识;论坛发布信息,发表观点,共享资源,技术大牛对于技术性一眼就可以进行及时过滤,不但提高了信息交流的速度,达到及时交互,不消耗社会资源,比传统信息交流降低了成本,也扩大了信息交流范围,咨询解决问题的几率也大大增加。1.3存在问题现在广告模块可能是大部分网站的一个盈利点,但是一个产品正在谋求发展壮大,广告的植入不仅不会起到盈利的作用,反而会影响用户的使用,引起用户的厌恶。1.4创新思路(1)技术创新在web应用开发过程中,实现用户与服务器交互的Spring Boot基本的技术架构,结合前端模版Thymeleaf,数据层Spring Data JPA,搜索引擎ElasticSearch和安全管理Spring Security等技术的技术论坛系统。(2)理论创新根据目前网络技术论坛的趋势和现状,重新对技术论坛中的要素和交互观念剖析,提出网络技术论坛中用户需要的高质量,高层次且具有个性化的需求。开发者也需要进行深度解析,尽量提升用户感官体验,建构用户需求的角色模型,完成对仍有缺憾的引导技术论坛交互需求设计。1.5本文的内容本文将基于技术论坛系统,结合目前流行博客的个性化的特点,实现用户交互化设计和信息及时搜索筛选等特点进行设计和实现。1.5本章小结综上所述,通过对比研究现状,可以看出一个技术论坛系统的可塑性对于需求群体是很高的,意味着在技术论坛系统的设计在未来会有更好的期许。2. 相关平台和技术介绍2.1 系统平台2.1.1 Eclipse(JavaEE)Eclipse(JavaEE)是一个应用java技术开源性的平台,它比其他的开发软件更加灵活,也被广大开发者所使用。2.1.2 MySQL数据库MySQL数据库是一款花费价格不高、易于配置和维护且软件体积小的开源性的关系型数据库管理系统。2.1.3 Gradle构建工具Gradle是一款应用java技术且能够自动构建项目的工具。2.2 相关技术介绍2.2.1 SpringBoot框架在Spring传统的开发平台过程中,我们会遇到很多繁琐的XML配置,还有管理很复杂的依赖关系等等。而SpringBoot应用了大多数的第三方库,不需再配置XML,一些配置代码就可以实现,让开发程序变得更简单。2.2.2 ElasticSearch引擎Elasticsearch是一个运用Java技术进行检索关键字进行搜索和分析的引擎。2.2.3 Spring Data JPA技术Spring Data JPA调用自定义接口,它可以自动帮你完成在数据库建表和完成其他没有完成的工作,所以基于使用Spring数据访问技术栈的应用程序更容易构建出来。2.2.4 Spring_Security安全框架Spring Security是一个运用Spring技术对开发的项目进行安全性受权和识别的框架。2.2.5 Thymeleaf模板引擎Thymeleaf应用Java技术把各个页面相同的地方做一个提取,根据不同的数据做一个渲染,渲染的数据会从相同页面变成不同的页面组成,所以Thymeleaf技术对于Spring Boot 非常友好。2.2.6 Bootstrap框架Bootstrap是具有众多的web组件的前端开发框架,可以快速构建一个功能完善的Web项目。2.3 本章小结本章介绍了开发技术论坛系统时候所采用的平台和技术,增加开发时的技术背景的知识铺垫和技术支持。3. 技术论坛系统需求分析3.1目标和任务本课题的目的是为了用户快速地解决问题、增加见识,同时也是为了是针对提出网络技术论坛中用户需要的高质量、高层次且具有技术论坛系统的需求现状,设计的成果风格应属简约、轻量且具有类似博客个性化用户风格,而技术论坛主要是为了用户快速地解决问题、增加见识,而需要快速地对论坛技术帖主的帖子内容进行筛查、甄别,同时需要交互性要强,例如:点赞,评论等。所以根据以上需求分析出需求特点是设计和实现技术论坛系统的首要任务。3.2界面需求分析系统界面是用户接触的第一印象,设计风格设计和实现要大气、专业且没有其他与页面无关内容,其次用户所需的数据需求要合理安排显示和对于一些技术标签、类别要合理区分,最后网页设计的字体要规范、配色要舒适。3.3功能需求分析本节将会按照3.1节的目的和任务,着重于阐述技术论坛系统的主要功能模块的需求,并且通过模块功能概述图、用户和管理者功能用例图两方面来进行介绍用户需求,确定需求后可以更好的进行系统的设计和实现。(1)用户模块该模块包括了六个子功能:注册功能、登录功能、搜索用户功能、增加用户功能、删除用户功能、修改用户功能。用户模块是确定技术论坛系统用户的基础,而在系统中管理员是拥有最高权限的用户,负责整个技术论坛里的管理用户工作,可以将在系统中违反技术论坛相关规定的用户进行封号处理,这样可以最大程度的约束用户在系统的行为,所以管理员拥有该模块下除了注册功能以外的五个子功能的功能。而普通用户拥有该模块下的两个子功能,分别为注册功能、登录功能。其中,图3-1-1、图3-1-2分别为用户模块的功能概述图、用户和管理者功能用例图。图3-1-1 用户模块功能概述图图3-1-2 用户模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。注册功能:用户想使用帖主等技术论坛内的功能需要用户注册,用户可以在注册页面填写必要的个人信息进行注册,同时注册信息是会加载在帖子作者信息中,而注册成功后会获得自己的账号和密码且用其的账号和密码进行用户登录,即可获得完全的用户权限功能。登录功能:登录是检验用户的账号和密码,以及登陆成功后获得技术帖主信息更改、发表帖子等一系列系统权限的凭证,登录成功后则系统将自动跳转到系统技术论坛主页;而当用户处于未登录系统状态时,只能操作基础的技术帖子浏览和搜索以及浏览技术帖信息和帖主信息等不需要登录的功能。增加用户功能:管理员在管理员页面对技术论坛的用户进行增加用户,管理员对个人信息重新进行赋予且通过系统验证以后填写必要的个人信息和赋予该用户(帖主或管理员)具体的权限进行系统用户添加,通过系统验证以后,该用户可以行使其权限的所有功能。修改用户功能:管理员在管理用户页内对重新更新技术论坛相关的用户个人信息,通过系统验证以后,该用户可以行使其更新后权限的所有功能。删除用户功能:管理员在管理用户页面删除用户,是对违反技术论坛相关规定的用户的账号信息进行删除,因为用户缺少账号,用户将无法使用账号密码进行登录。搜索用户功能:管理员在管理员页面搜索用户,是对技术论坛相关的用户快速的进行检索,检索成功后则可以对具体用户进行操作,若因为输入的行为不规范导致搜索失败,则显示管理用户的必要属性,值为空白。(2)帖子模块该模块包括了八个子功能:个人资料设置功能、发表帖子功能、编辑帖子功能、删除帖子功能、模糊查询功能、最热排序功能、最新排序功能和阅读量统计功能。帖子模块是一个对所有用户对技术帖子进行发表、编辑、删除和个人喜好对技术帖子进行筛选、剔除以及阅读量多少是对技术帖子质量的肯定的个性化模块,而用户(帖主)和管理员均具有该模块的八个子功能的全部功能,即帖主或管理员都可以管理自己的技术帖子,设置自己的的个人资料和按情况查询自己的技术帖子情况,个人化得到凸显。其中,图3-2-1、图3-2-2分别为帖子模块的功能概述图、用户和管理者功能用例图。 图3-2-1 帖子模块的功能概述图图3-2-2 帖子模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。个人资料设置功能:个人资料的邮箱展示是针对技术大牛和技术小白之间沟通的桥梁,技术小白可以通过邮箱对技术大牛进行线下询问,以防有时候技术帖主对读者咨询的问题回复不及时等问题。用户可以在个人资料设置页修改账号以外的自己的个人资料,也可以在自己的个人主页内查看到自己的个人资料。发表帖子功能:用户撰写的技术帖子需要明确技术帖标题、技术帖摘要、和技术帖内容且字符要在两个以上才能发布,通过系统验证完成以后,发表后可以查看帖子内容详情。编辑帖子功能:用户须是某篇技术帖子的作者,帖主点击查看该技术帖子的内容详情,可以重新对该技术帖子进行编辑,通过系统验证完成以后,重新显示该技术帖子。删除帖子功能:用户须是某篇技术帖子的作者,帖主点击查看该技术帖子的内容详情,可以对该技术帖子进行删除,通过系统验证完成以后,用户个人主页不会出现该技术帖子。模糊查询功能:用户在个人主页对个人技术帖子标题进行模糊查询,系统完成匹配后对结果显示在个人主页,系统匹配失败则显示空白。个人帖子最热排序功能:用户点击个人主页的“最热”按钮显示用户的所有文章,该功能按照阅读量、评论量和点赞量综合显示最热的技术文章。个人帖子最新排序功能:用户点击个人主页的“最新”按钮显示用户的所有文章且能按照时间逆序进行显示最新的技术文章。阅读量统计功能:阅读量是对技术帖子的质量重要凭证之一,用户发表技术帖子时,阅读量默认为一;用户在查看技术帖子时且评论帖子一次时,阅读量加一。(3)评论模块该模块包括了四个子功能:发表评论功能、查看评论功能、删除评论功能和评论量统计功能。评论模块是读者对技术帖主发表的技术帖子的质量的肯定和存在问题的疑惑、解答的一个留言模块,也是技术大牛和技术小白进行互动的模块之一。而技术帖主和管理员均具有该模块的四个子功能,即帖主或者管理员登录能获得该模块的所有功能,若用户处于未登录状态,只能查看评论。其中,图3-3-1、图3-3-2分别为评论模块的功能概述图、用户和管理者功能用例图。图3-3-1评论模块的功能概述图、图3-3-2评论模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。发表评论:用户是会员可以在某篇技术帖子的详情页下,评论技术帖子的内容,通过系统验证完成以后,可以发表评论且在该技术帖子显示该评论内容。删除评论:用户是会员可以在某篇技术帖子详情页下,对自己的评论进行删除,删除后,该技术帖子不显示该评论。查看评论:用户可以在某篇技术帖子详情页下,查看该技术帖子的评论。评论量统计:评论量是对技术帖子的质量重要凭证之一,用户可以在某篇技术帖子展示页下,查看到该技术帖子的评论量。(4)点赞模块该模块包括了三个子功能:点赞功能、取消点赞功能、点赞量统计功能。点赞模块是读者对技术帖主发表的技术帖子的质量的肯定和喜爱,也是技术大牛和技术小白进行互动的模块之一。而帖主和管理员均具有该模块的三个子功能,即帖主或者管理员登录能获得该模块的所有功能。其中,图3-4-1、图3-4-2分别为点赞模块的功能概述图、用户和管理者功能用例图。 图3-4-1点赞模块的功能概述图图3-4-2点赞模块的的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。点赞:用户是会员可以在某篇技术帖子详情页下,对技术帖子的内容进行点赞,点赞后,显示用户用户对该技术帖子点赞。取消点赞:用户是会员下可以在某篇技术帖子详情页下,对已经点赞的技术帖子进行取消点赞,取消点赞后,显示用户对该技术帖子没有点赞。点赞量统计:点赞量是对技术帖子的质量重要凭证之一,用户可以在某篇技术帖子展示页下,查看到该技术帖子的点赞量。(5)分类模块该模块包括了五个子功能:创建个人分类功能、编辑个人分类功能、删除个人分类功能、查询个人分类列表功能和根据分类查询文章功能。分类模块是针对技术帖主对自己发表的技术帖子进行分类,也是为了技术帖主能够明确对自己的技术帖子分类和管理,同时读者能够快速筛选自己所需的技术信息。所以帖主和管理员均具有该模块全部的功能,而用户处于未登录状态,拥有该模块的浏览功能,分为查询个人分类列表功能和根据分类查询文章功能。其中,图3-5-1、图3-5-2分别为分类模块的功能概述图、用户和管理者功能用例图。图3-5-1分类模块的功能概述图图3-5-2分类模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。创建个人分类功能:用户是会员可以在个人主页对自己的技术分类进行创建,通过系统验证,可以创建成功;用户在发表技术帖子时,需要该技术帖子有对应的技术分类,即发布帖子时要先创建个人的技术分类,如果用户的个人技术分类列表没有技术分类,则帖子无法发布。编辑个人分类功能:用户是会员可以在个人主页对自己的技术分类进行编辑,通过系统验证,可以编辑成功。删除个人分类功能:用户是会员可以在个人主页对自己的技术分类进行删除,删除过程中假如分类没有关联文章,通过论坛系统验证,可以删除成功;假如技术分类关联帖子,需要删除某个分类,需要先对该分类下的帖子进行删除。查询个人分类列表:用户点击自己的个人主页,可以查看到自己的技术分类列表;假如其他用户点击某个用户的个人主页,可以查看到该用户的技术分类列表。按分类查询文章功能:用户在查看和编辑个人技术帖子或者其他用户查看某个用户的技术帖子时,可以查看该帖子的技术分类信息,若点击了该分类,重定向到用户个人主页,再点击列表的某个技术分类,显示该用户相对应的技术文章信息。(6)标签模块该模块包括了四个子功能:创建标签功能、查看标签功能、删除标签功能、按标签查询文章功能。标签模块是针对技术帖主对自己发表的技术帖子所涉及技术的方面的一个填充,比如分页、环境配置,也是为了读者能够快速了解技术帖主所写的技术帖子涉及的内容。所以帖主和管理员均具有该模块的全部功能,而用户处于未登录状态,具有该模块的查询功能,分别为:查看标签功能按标签查询功能。其中,图3-6-1、图3-6-2分别为标签模块的功能概述图、用户和管理者功能用例图。图3-6-1标签模块的功能概述图图3-6-2标签模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。创建标签功能:用户处于登录状态在发表技术帖子时,可以对帖子的内容创建多个标签,通过系统验证完成以后,可以查看标签内容。查看标签功能:用户在某篇技术帖子详情页下,可以查看某篇技术帖子的对应标签。删除标签功能:用户须是某篇技术帖子的帖主,帖主点击查看该技术帖子的内容详情,可以对该技术帖子的对应标签进行删除,通过系统验证完成以后,该技术帖子不会出现已经删除了的标签。按标签查询功能:用户可以在首页搜索标签对应的技术文章和用户处于登录状态可以在个人主页内搜索属于自己发表的标签所对应的技术文章,通过系统验证完成以后,显示技术文章,系统匹配失败则显示空白。(7)首页搜索模块该模块包括了七个子功能:全文检索功能、论坛系统最新文章展示功能、论坛系统最热文章展示功能、热门文章展示功能、热门标签展示功能、热门用户展示功能和最新发布文章功能。首页搜索模块是针对游客、技术帖主和管理员可以快速的浏览和查找所需要的技术文章、以及通过技术帖主撰写的技术帖子了解系统的热门用户、热门和最新技术话题内容以及众多技术帖子涉及的技术标签的一个展示模块,这也是技术咖们快速获取技术知识的模块。所以帖主和管理员均具有该模块的七个子功能的功能,而用户处于未登录状态,也具有该模块七个子功能的功能。其中,图3-7-1是首页搜索的功能概述图,图3-7-2是用户和管理者功能用例图。图3-7-1首页搜索模块的功能概述图图3-7-2首页搜索模块的用户和管理者功能用例图现以下对其子功能进行详细的叙述和说明。全文检索功能:用户可以快速的查找所需要的技术文章,需要在首页以标题、摘要、内容和标签等关键字搜索,可以查看到符合关键字的技术文章信息且默认按时间倒序进行显示。论坛系统最热文章展示功能:用户可以快速了解论坛系统内最火爆的技术文章,用户点击系统导航栏的“最热”按钮显示系统的所有技术文章,该功能按照阅读量、评论量和点赞量综合显示最热技术文章;论坛系统最新文章展示功能:用户可以快速了解论坛系统内最新发布的技术文章,用户点击系统导航栏的“最新”按钮显示系统的所有技术文章且能按照时间逆序进行显示最新技术文章;热门标签展示功能:用户可以快速了解论坛系统内的技术帖主发布帖子所侧重的方面,该功能根据用户发布的帖子信息里面定义的标签信息进行聚合计数排序显示前30的热门标签,标签数量越多,越热门,假如用户点击某个标签则显示符合该标签的所有技术文章。 热门用户展示功能:用户可以快速了解论坛系统内的技术大咖帖主,该功能根据系统里帖子信息相关联的用户账号信息进行聚合计数排序显示前12的热门用户,用户账号数量越多,越热门,假如用户点击某个用户的头像则显示系统里该用户的用户主页信息。 热门文章展示功能:用户可以快速看到论坛系统内最火爆的技术文章标题,以便读者发现是否该功能根据论坛系统最新文章列表的前5进行展示且只显示文章标题和阅读数,假如用户点击某个标题则显示该文章的详细信息。最新发布文章展示功能:该功能根据论坛系统最热文章列表的前5进行展示且只显示文章标题,假如用户点击了某个标题则显示该文章的详细信息。3.4性能需求分析本技术论坛系统的非功能性需要分析是指系统的功能性需求之外,还需满足系统的性能需求,接下来对性能需求进行阐述:(1)系统具备安全性系统的需要具备有一定的安全保护来避免轻易引入易攻击的代码漏洞,所以论坛系统需要建立用户角色和资源的权限配置的授权,比如像未登录的用户可以对静态文件和系统的首页允许所有用户进行访等;同时用户的密码设置 BCrypt 加密,使用户信息得到保护。(2)系统具备可靠性系统的可靠性可以通过系统数据格式改变、数据量递增等因素叠加而不会造成系统损坏导致无法运行,因此系统应该保证在开发和测试过程中输出正确或者错误信息。4. 技术论坛系统的系统设计4.1系统结构设计本系统是在B/S模式下应用三层体系结构的web应用系统,浏览器用作客户端,MySQL数据库用作服务器端。技术论坛系统按业务功能进行分层,同时保持良好的层次关系,减少每层之间业务的糅合度,使每一层可以独立出来,每一层清晰简洁的代码结构,可以实现低耦合高内聚的特点,也是成为一个良好分层的应用系统的基础,同时满足系统更易进行扩展和运行。4.2功能架构设计在对技术论坛系统的功能架构进行设计的过程中,本文采用自顶向下、由总体到部分的设计思维,将系统划分为用户模块、帖子模块、评论模块、点赞模块、分类模块、标签模块、首页搜索模块和安全设置模块八个模块。其中技术论坛系统的功能架构如图4-2所示。图4-2技术论坛系统的功能架构图4.3功能详细设计在明确已有的功能需求上,本文对用户模块、帖子模块、评论模块、点赞模块、分类模块、标签模块、首页搜索模块和安全设置模块进行了详细设计。下面,本文将借助类图、状态图等形式对上面提及的模块进行逐一的介绍。(1) 系统类图user类是用户类,它拥有id、name、email、username、password、avatar等属性,其中主要操作有注册、登录、管理用户、搜索用户、根据用户账号搜索。authority类是权限类,它拥有id、name等属性。其中主要操作让用户获得相对应的角色权限。Blog类是帖子类,它拥有id、catalog_id、user_id、title、summary、content、htmlContent、tags、readSize、commentSize、voteSize、create_time等属性,其中主要操作有管理技术帖子、个人最新技术帖子查询、个人最热技术帖子查询、阅读量递增、根据分类查询技术帖子、发表对应技术帖子评论、删除对应技术帖子评论、对应技术帖子点赞、对应技术帖子取消点赞。Comment类是评论类,它拥有id、user_id、content、create_time等属性,其中主要操作有发表评论、删除评论、评论量统计。Vote类是点赞类,它拥有id、user_id、create_time等属性,其中主要操作有点赞、取消点赞、点赞量统计。Catalog类是分类类,它拥有id、user_id、name等属性,其中主要操作有保存分类、删除分类、获得分类Id、分类列表、根据分类查询帖子。其中图4-3为系统类图。图4-3系统类图(2)用户模块在对系统的用户管理模块进行设计过程中,本小节主要由用户资源库类UserRepository.java、用户控制类UserController.java、用户逻辑类UserService.java、UserServiceImpl.java和管理员控制类AdminController.java组成, 其中用户模块相对应的功能类表如图4-3-2-1所示。类名方法名方法说明UserServiceUserServiceImplsaveUser()保存用户removeUser()删除用户updateUser()更新用户getUserById()获得用户IdlistUsersByNameLike()根据用户名搜索用户图4-3-2-1用户模块的功能类表如图4-3-2-1所示,用户逻辑类UserService.java和UserServiceImpl.java主要包括保存用户saveUser()、删除用户removeUser()、更新用户updateUser(),根据id获取用户信息getUserById()以及根据用户名搜索listUsersByNameLike()方法。其中,当管理员在用户模块进行管理用户操作时,得到系统通过,完成操作;没有通过,退回相对应页面,与之对应的状态图如图4-3-2-2所示。图4-3-2-2用户管理的状态图其中,当用户在注册页面进行填写个人信息时,信息有效可以成功登录;信息无效,返回注册页面,与之对应的状态图如图4-3-2-3所示。图4-3-2-3注册_登录的状态图(3)帖子模块在对系统的用户管理模块进行设计过程中,本小节主要由帖子资源库类BlogRepository.java、帖子逻辑类BlogService.java、BlogServiceImpl.java和用户空间控制类UserspaceController.java, 其中帖子模块相对应的功能类表如图4-3-3-1所示。类名方法名方法说明BlogServiceBlogServiceImplsaveBlog()保存技术帖子removeBlog()删除技术帖子getBlogById()获得技术帖子IdlistBlogsByTitleVote()个人最新技术帖子查询listBlogsByTitleVoteAndSort()个人最热技术帖子查询readingIncrease()阅读量递增图4-3-3-1帖子模块的功能类表如图4-3-3-1所示,帖子逻辑类BlogService.java和BlogServiceImpl.java主要包括保存技术帖子saveBlog()、删除技术帖子removeBlog()、根据id获取技术帖子信息getBlogById()、个人最新技术帖子查询listBlogsByTitleVote()、阅读量递增readingIncrease()以及个人最热技术帖子查询listBlogsByTitleVoteAndSort()。其中,当用户在帖子模块进行个人技术帖子最新和最热的查询时,分别按时间逆序显示和按阅读量等综合显示;而模糊查询显示匹配内容,否则为空得,与之对应的状态图如图4-3-3-2所示。图4-3-3-2个人帖子最新查询、最热的查询和模糊查询状态图其中,当用户在帖子模块进行发布和编辑技术帖子操作时,得到系统通过,重新显示技术帖子详细内容,在进行删除帖子时,更新删除后的技术帖子列表;而用户进行个人资料更改,得到系统通过,重新显示用户资料,与之对应的状态图如图4-3-3-3所示。图4-3-3-3帖子管理和个人资料设置的状态图(4)评论模块在对系统的评论模块进行设计过程中,本小节主要由评论资源库类CommentRepository.java、帖子逻辑类BlogService.java、BlogServiceImpl.java和评论逻辑类CommentService.java、CommentServiceImpl.java和评论控制类CommentController.java, 其中评论模块相对应的功能类表如图4-3-4-1所示。类名方法名方法说明CommentServiceCommentServiceImplgetCommentById()获得评论idremoveComment()删除评论BlogServiceBlogServiceImplcreateComment()发表对应技术帖子评论removeComment()删除对应技术帖子评论图4-3-4-1评论模块的功能类表如图4-3-4-1所示,帖子逻辑类BlogService.java和BlogServiceImpl.java主要包括发表对应技术帖子评论createComment()、删除对应技术帖子评论removeComment()和评论逻辑类CommentService.java和CommentServiceImpl.java主要包括根据id获得评论getCommentById()和删除评论removeComment()。其中,当用户在评论模块进行评论管理时,完成操作,重新显示帖子详细内容下的评论内容和评论量。与之对应的状态图如图4-3-4-2所示。图4-3-4-2评论管理和评论量统计的状态图(5)点赞模块在对系统的点赞模块进行设计过程中,本小节主要由点赞资源库类VoteRepository.java、帖子逻辑类BlogService.java、BlogServiceImpl.java和点赞逻辑类VoteService.java、VoteServiceImpl.java和点赞控制类VoteController.java, 其中点赞模块相对应的功能类表如图4-3-5-1所示。类名方法名方法说明VoteServiceVoteServiceImplgetVoteById()获得点赞idremoveVote()取消点赞BlogServiceBlogServiceImplcreateVote()点赞对应技术帖子removeVote()取消对应技术帖子的点赞图4-3-5-1点赞模块的功能类表如图4-3-5-1所示,帖子逻辑类BlogService.java和BlogServiceImpl.java主要包括点赞对应技术帖子createVote()、取消对应技术帖子的点赞removeVote()和评论逻辑类VoteService.java、VoteServiceImpl.java主要包括根据id获得点赞getVoteById()和取消点赞removeVote()。其中,当用户在点赞模块进行点赞管理时,完成操作,重新显示技术帖子详细内容下的点赞信息和点赞量。与之对应的状态图如图4