版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot博客系统的设计与实现DesignandimplementationofblogsystembasedonSpringBoot中文摘要互联网随着社会的进步也渐渐得到普及,给人们带来很多便利,可以提供更多的服务,在互联网还没有发展起来之前,人们需要购买纸质报纸或通过人际交往获取信息。现在随着互联网的发展,人们正在越来越多地方便我们的生活。有什么问题,除了通过以前的方式获取信息外,人们还可以通过互联网更快、更方便地获取更多自己想要的信息,获取信息是这样,发表自己的想法也那么方便了。通过互联网发布你的经验或想法,可以让更多的互联网使用伙伴了解你的信息。因此,现在网络几乎已经成为人们收集和表达信息、更及时地获得意见和建议、通过交流更好地提高思维维度的一种方式。因此,个人博客的诞生为人们表达思想、记录生活、讨论知识的方方面面带来了新的体验。本系统基于SpringBoot和MyBatis框架,在服务端,也即是B/S中的Service端,基于Java平台的开源的应用框架SpringBoot框架,简单化了Spring框架应用构建和开发;优秀持久层框架——MyBatis,不仅不需要依赖第三方关系而且只要简单增加配置即可使用,另外,为了使系统更加完整,安全性也不可忽视的一方面。本系统采用Shiro技术,Shiro是一个Java安全框架,功能包括用户登录的身份认证和用户权限的管理、密码加密等;作为博客系统,搜索功能是必不可少的,该系统采用Java语言开发的Solr搜索引擎,以Lucene及其扩展的全文搜索引擎为基础,配置更少即可快速使用。在Browns方面,本系统采用了比较流行的前端框架Bootstrap、layui、jQuery、Ajax等技术构建页面,使用户在页面上的视觉感受更加舒适,使用更加方便对用户更加友好;开发工具IntelliJIDEA是采用JetBrains公司开发的开发工具。本系统主要由前台显示和后台管理员管理两部分组成。主要实现了博客的一些基本功能——前台核心功能:查看文章、评论文章、留言和查询等;后台核心功能:添加文章、管理评论、角色管理、权限分配等。本文将展示如何使用上述技术设计和实现博客系统。关键词:博客SpringBootMyBatisBootstraplayui
Abstract ThedevelopmentofInternetbringsconveniencetopeople.BeforetheInternethasnotdeveloped,peopleneedtobuypapernewspapersorobtaininformationthroughinterpersonalcommunication.Inadditiontopreviousmethodsofgettinginformation,nowtherearemoreconvenientwaystogetmoreinformationyouwantandexpresshowyouwanttotype.PublishingyourexperiencesorideasovertheInternetcanmakeyourinformationknowntomoreInternetusers.Therefore,thenetworkhasalmostbecomeawayforpeopletocollectandexpressinformation,getopinionsandsuggestionsmoretimely,andimprovethedimensionofthinkingthroughcommunication.Therefore,thebirthofpersonalbloghasbroughtnewexperienceforpeopletoexpresstheirthoughts,recordtheirlives,anddiscussallaspectsofknowledge.ThesystemisbuiltanddevelopedbySpringBoot,anopensourceapplicationframeworkdevelopedbyjavalanguage.Itisagoodpersistentlayerframeworkindependentofthird-partyrelationship.MyBatisisavailablewithasimpleconfiguration,andsecurityisanimportantaspecttomakeyoursystemmorecomplete.ThissystemusesShirotechnology,ShiroisaJavasecurityframework,whichincludesuserloginauthentication,userrightsmanagement,passwordencryption,etc.Asablogsystem,searchfunctionisessential.SolrsearchenginedevelopedinJavalanguageisbasedonLuceneanditsextendedfull-textsearchengine,andcanbeusedquicklywithlessconfiguration.Infront-enddevelopment,thesystemusesthepopularfront-endframeworkbootstrap,layui,jQuery,Ajaxandothertechnologiestobuildasimplepage,addingappropriatefront-endlibrarytomaketheinterfacemorecomfortableandfriendly.ThedevelopmenttoolIntelliJIDEAisadevelopmenttooldevelopedbyJetBrains.Foregroundandbackgroundmanagementisthesystemoftowparts.Itmainlyimplementssomebasicfunctionsoftheblog-foregroundcorefunctions:viewingarticles,commentingarticles,messagesandqueries;backgroundcorefunctions:addingarticles,managingcomments,rolemanagement,permissionassignment,etc.Keywords:BlogSpringBootMyBatisBootstraplayui广东东软学院本科毕业设计(论文)目录1.绪论 .绪论本章阐述了本文的研究背景和意义,网络快速发展下博客的发展现状以及对未来发展的启示。1.1研究背景与意义以往人们获取信息可以从报纸、书、电视、电台等途径来获取。值得一提的是随着互联网的发展,人们获取信息的方式除了前面提到的方式外又增加了新方式。在互联网上搜索相关信息和进行话题交流已经成为人们之间最便捷、最有效的交流方式。这就证明了一句话,秀才不出门,尽知天下事。随着人们在网络上发表意见、引用他人意见,博客系统逐渐形成。博客系统不仅是一个很好的表达个人情感和自我发展个性的平台,也是一个很好的与不同想法的人交流的平台。本文的研究意义是从软件设计的角度出发,从软件需求分析到测试,详细阐述了blog系统的开发过程,并在简要介绍基本技术的基础上,将其应用到系统中,注重用户使用该系统获得从操作到安全等方面,并在此基础上设计和实现系统。1.2国内外发展现状近些年发展迅速的博客,很快的取代了早期的信息交流系统,比如BBS、电子邮箱、ICQ等方式,博客影响着人们的不仅是便捷方面更是效率上的改进,带给人们新颖的交流沟通方式,给人们之间传递信息带来了巨大的方便,以下为博客系统在国内外这些年来的发展状况。1.2.1国外发展的现状国外也不例外并且已经有很多成熟的案例,比如:世界上最流行的博客软件之一——是一个开发源码的软件平台,通过平台能够达到提高对话质量和范围目标;再如Wix是一个创建网站的托管平台,就算不是软件开发的使用者也可以快速的使用施放工具来创建网站,方便了想要拥有自己网站又没有基础的使用者。1.2.2国内发展的现状国内最流行的互联网概念是Blog。通过在博客中分享生活,人们可以通过阅读博客这种方式来获取各种精彩信息,扩大了人们对对未来美好的追求和未来信息世界的期待,加速了人与人之间的沟通交流,影响着整个国内互联网的发展趋势。1.2.3未来发展的启示博客是个人网络中热门级应用,它能使每个人都能成为互联网上成为一个独立且完整的主体。在未来发展中,博客将成为中心应用,用来整合各种网络应用,除了email,甚至短信通知、应用博客、协同办公以及讨论等应用的整合;使用平台上除了计算机,还可以更便利的在手机上使用,亦可通过电视使用更能增加对视觉效果,各种终端在各地进行,更能显得更随手随时可得的信息。个人博客是整体形象基于个人应用中心的网上个人发言人。
2.系统开发工具与相关技术开发项目中所使用的工具和相关技术在项目中使用细节将在本节详细讲解。2.1系统开发工具2.1.1IntelliJIDEA简称IDEA,它比传统的eclipse/MyEclipse更加方便和强大,自带插件或者能查找插件直接下载使用,不用专门网上查找插件再去软件中安装,使用方便快捷。IDEA智能提示功能以及各种快捷键使减少编码工作量和加快开发速度。2.1.2MySQL数据库MySQL以其速度快、准确性高、可用性强以及其开源等优点,并且下载包小引起了人们的广泛关注。MySQL是管理内容而不需要进行事务处理的最佳选择。2.1.3Maven项目管理工具通俗一点讲Maven工具就是包管理工具,只需要在xml文件中增加项目需要的对应包名称以及版本,Maven就会从本地仓库或者是网上找到对应的包下载到本地仓库即可使用,所以说使用Maven搭建简单的项目只需要两三行即可运行该项目。2.2系统后台技术涉及到获取用户请求、请求数据的逻辑处理、数据库操作处理以及操作安全问题。2.2.1SpringBoot框架技术SpringBoot框架最大特点就是控制反转和面向切面编程。2.2.2MyBatis框架技术该框架最主要的作用就是操作数据库,是一个持久层框架,可以使用自带的操作语句或者开发者编写sql语句对数据进行操作。2.2.3Shiro框架技术本项目使用该框架主要是使用到该框架的用户登录操作进行验证和权限管理这两个功能,通过权限管理这个功能可以给用户分配角色来控制用户可操作行为。2.2.4Solr服务器技术本项目使用Solr是为了在前台用户输入关键字而对文章进行操作时使用,而Solr刚好是一个简单易上手的全文搜索工具,还能通过完整的功能管理界面来直观的观察服务器操作日志以及能通过管理界面来直接操作检索工具,通过直接操作的方式来检查自己在项目中是否查询正确。2.2.5Docker通过Docker容器引擎,可以在服务器中直接通过这个容器引擎下载需要的软件,无需在服务器中把下载包进行安装软件。2.3系统前端技术设计到与用户直接交互的操作,使用技术要给用户带来良好的体验。2.3.1jQuery技术jQuery最简洁的介绍就是JavaScript框架,封装了常见的JavaScript功能,并且还能扩展自己的JavaScript代码,方便重用。有独特的链式语法,即可以减少重复代码的书写。拥有丰富的插件以及与主流浏览器兼容。实现了jQuery的宗旨writeless,domore.2.3.2Ajax技术Ajax通过提交请求刷新内容部分信息,不仅减少了对服务器的请求信息,还很大程度提高了用户体验。使用Ajax的另一个优点就是不用依赖插件。2.3.3Bootstrap框架使用Bootstrap可以缩短搭建网站的时间,是因为含有丰富的组件还附带了多个jQuery插件,使用起来更加方便快捷。可以根据自己的需要对CSS变量进行定制代码。2.3.4layui框架Layui根据web页面的需求以模块化的方式进行加载所需模块,内部提供了很多的内置模块,它是一种网页管理页面的快速开发方案。2.3.5Thymeleaf模板引擎Thymeleaf的使用有利于前后端分离,与SpringBoot框架结合使用,可以通过简单的配置即可进行信息传递。
3.系统分析3.1系统功能分析概述如下图3-1可知道到由游客前台模块和管理者后台模块两部分组成的本系统,其中游客前台操作模块面向的使用主要对象是普通用户者即游客,其主要包括了游客临时信息的储存、组织展示、文章分类、文章搜索、文章展示、文章评论以及重点的文章浏览功能,其中文章评论不需要要求游客登陆注册,只需要留下邮箱联系即可,如果是第一次输入,会把信息存在浏览器的LocalStorage中,减少了重复操作,提高用户使用好感。而管理者后台模块面向的使用对象主要是运维者和管理者,这模块主要功能包括了文章、用户、评论、文章类型以及文章标签的管理五个子功能模块。根据功能模块图给两个功能模块画出了具体用例图,如3-2所示的游客功能用例图和如3-3所示的管理者功能用例图。图3-1博客系统功能模块示意图图3-2游客功能用例图图3-3管理者功能用例图3.2系统功能性需求分析从上述两个模块方面进行详细的分析,并描述其功能需求,从而明确系统的详细功能需求,越明确的需求对后续的系统开发越好,即是为编码铺好道路。3.2.1系统游客功能性需求分析图3-4博客系统游客功能概述图图3-5前台首页图3-6热门文章展示列表图3-7推荐文章展示列表本系统中的游客功能需求的概述图(图3-4),如下进行分析。(1)文章列表展示的系统前台功能本系统游客操作的最基本功能,在打开本系统前台首页(图3-5),则为文章的展示页面,通过首页展示10条信息,由下拉获取更多的文章。首页除了可以查看最新发布的文章展示以外,还有右边两个栏是用来展示热门文章(图3-6)和推荐文章(图3-7)的,热门文章是由文章的评论热度来评选出来的,推荐文章则是由管理员操作推荐出来的,这样能更加吸引用户的眼球,可以通过这两个栏目,让使用者有选择性阅读。该功能具有三项子功能,分别是通过文章分类来根据文章进行分类并展示功能、通过关键字搜索出的文章列表进行展示功能、通过文章标签搜索得到的文章列表展示功能。其中文章分类功能和文章标签搜索功能都使通过点击来查询文章,分类和标签皆是由管理者定义好的。以下对其三项子功能进行详细的阐述和说明。文章分类功能:每一篇文章都有属于自己的类型,通过文章分类可以快速分类出该分类下的文章页面,通过文章分类功能能找到属于这一类的文章,以便系统的阅读文章。文章关键字搜索功能:通过搜索关键字来搜索出相关文章,其中这些关键字会在文章的标题、描述或者文章内容中找到相关的信息则会返回该文章,表示该文章有包括关键字的内容。可以通过这个功能快速的找到自己想要看的文章。文章标签搜索功能:每篇文章都有属于自己的标签,一个甚至多个,通过标签分类可以快速的找到有关该标签的文章,更适合与找到相关标签的文章。图3-8文章详情展示功能页(2)文章详情展示功能(图3-8)该功能为课题博客系统的基础功能,在游客点击文章展示页中的任意一篇文章的时候会跳转到该文章的详情展示页,在文章展示页中只有显示文章的标题和描述以及发表时间,通过这个功能能尽情地阅读全文。该功能具有三项子功能,分别为浏览评论功能、发表评论功能和打赏文章功能。其中浏览评论功能和发表评论功能只在该文章在可评论状态下才会开放的功能,以下对其三项子功能进行详细的阐述和说明。浏览评论功能:游客可以查看该文章的评论列表,通过评论列表游客可以更进一步的了解到该文章给不同人带来不一样的体验,以及能从评论中找到更多有关这篇文章的相似问题并能与其进行沟通。评论文章功能:游客可以对开发评论的文章进行评论,通过阅读文章的所感所疑对文章进行提问,以及可以找到有同样疑问的阅读者,并进行讨论;要发表评论,首先本系统不用用户登录注册,只需要用户在评论的时候,添加昵称跟邮箱,如果有个人链接的也可以填写,只有填写了这些信息,管理员回复了评论,才能更快的通过邮箱接收到管理员回复的评论。如果不是第一次填写,系统会把填写的信息通过LocalStorage储存在浏览器中,以便下次快速评论使用。打赏文章功能:该功能是游客对该文章给予物质上的肯定,由游客自愿打赏,如果游客觉得这篇文章不错,可以通过扫描二维码进行随意的打赏。(3)留言功能该功能主要针对游客在使用本系统的时候有任何的问题,可以通过留言来告知管理员,通过这个功能能更好的收集群众的建议和意见,对本系统能改进起到很大的作用。(4)博主信息展示功能该功能主要存放一些博主的个人信息以及撰写这博客的意义,使游客更好的了解该博客。3.3.2系统管理者功能概述图3-9管理者功能概述图图3-10管理者登录页图3-11文章管理页图3-12用户管理页图3-13角色管理页图3-14标签管理页图3-15文章分类管理页本系统管理者功能需求概述图(图3-9),下面进行分析。(1)登录后台管理界面功能(图3-10)只有管理员才能进入后台管理页面,即必须通过登录这个功能才能获取访问权限。登录成功进入后台管理系统,由此来获得全部的系统功能以及由该用户的角色来获得用户的权限。只有当用户处于在线状态以及拥有对应的权限时,才能对有权限的功能进行操作,否则无法操作功能。登录后台管理功能是必须的,如果用户没有通过验证都可以进行操作数据的话,会完全乱了后台的管理。(2)文章管理功能(图3-11)管理前台文章的必要功能,该功能只在管理员在线状态而且拥有权限的前提下才能操作,该功能包括四项子功能,接下来进行分析。文章新增功能:该功能可以为系统新增文章,文章可以是存草稿和发布状态,可以开启评论和关闭评论状态,可以设为推荐文章,推荐文章只有在发布的前提下才会显示给游客。文章查询功能:通过标题关键字来搜索,亦可通过文章的发布状态或者文章的推荐状态来搜索文章,方便管理者查看文章信息。文章编辑功能:如果文章内容需要修改,不需要删除了再添加该文章的麻烦操作,直接修改信息即可。文章删除功能:处理不需维护或不合理文章,为了不让普通管理员误删,删除文章这种重要的操作,需要由管理员级别高者操作。(3)用户管理功能(图3-12)该功能只限于有管理用户权限的管理员才能操作,该功能具有四项子功能,分别为用户新增功能、用户查询功能、用户修改功能和赋予角色功能,该四项功能只在管理员在线状态为以及拥有权限时才会开放,下面进行分析。新增用户功能:是有新增新管理员权限的管理者才能操作,给予新用户管理员账号,使新用户后台操作可操作的数据。查询用户功能:通过名称关键字查询用户。修改用户功能:可以通过该操作对用户信息进行修改。角色赋予功能:可以通过赋予角色来使得该用户拥有权限来操作后台管理内容,否则就算拥有了账号,登录了后台管理页面,也无法进行操作。(4)角色管理功能(图3-13)该功能具有三项子功能,分别为角色新增功能、角色权限功能以及角色修改功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。角色新增功能:该功能为角色管理的子功能之一,该功能可以为系统新增角色。分配不同的权限,并把者角色给予不用身份的用户,这样的好处是能鉴别出哪个用户拥有什么角色而决定该用户拥有什么权限。角色权限功能:该功能为角色管理的子功能之一,该功能为系统中管理员赋予角色时,角色所拥有的权限。角色修改功能:该功能为角色管理的子功能之一,该功能可以为系统角色进行修改,修改角色的基本信息以及修改角色拥有的权限。(5)标签管理功能(图3-14)该功能具有三项子功能,分别为标签新增功能、标签删除功能以及标签编辑功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。标签新增功能:该功能可以为文章新增加标签选项。标签删除功能:该功能可以删除标签,删除标签的前提是不能被文章所引用,如果执意要删除,则会把引用该标签的文章对应的标签去除掉。标签编辑功能:该功能可以为标签进行修改。(6)分类管理功能(图3-15)分类功能是提供文章选择类型时候的数据。该功能具有三项子功能,分别为分类新增功能、分类删除功能以及分类编辑功能,三项子功能的操作都必须在管理员在线而且拥有权限的前提下才能操作,下面进行分析。分类新增功能:该功能可以为文章新增加分类选项。分类删除功能:该功能可以删除分类,删除分类的前提是不能被文章所引用,如果有该类型的文章则不能被删除。分类编辑功能:该功能可以为分类进行修改。3.3系统可行性分析3.3.1编写目的写博客系统肯定有很多大大小小的问题,本小节的编写就是对项目问题进行研究,确定最有效的解决问题的方法。3.3.2技术可行性分析科技的快速发展,如今的web开发技术已经是相当成熟了,开发本博客系统也使用了当下流行的框架,拥有API和各种插件,方便开发者快速开发系统。如今网络发达,又有成熟的论坛网站提供查询资料,所以在技术方面可行。3.3.3经济可行性分析开发者拥有开发工具,需要买学生机进行部署,经济方面可行。3.3.4设备可行性在设备window10上进行开发,通过部署到服务器CentOS7.364位上,如今的设备提供能够支持很多高效功能,在设备上可行。
4.系统设计本章结合前面两章节系统开发工具与相关技术的介绍和系统分析的内容,对博客系统设计主题结构和明确的设计要点。并对相关设计要点进行了详细的介绍和说明,阐明了系统架构的详细设计和实现,使开发过程更加清晰,使系统更具扩展性和可维护性,减少后期维护量。4.1系统体系架构设计概述图4-1博客系统体系架构图连接互联网的用户通过浏览器就能访问此系统。另外,本系统属于B/S结构的网站,采用SpringBoot和MyBatis框架进行数据逻辑处理,使前后分离的工作协调,这使得体系结构的业务逻辑更加清晰,同时也减少了业务代码的耦合,图4-1为系统体系架构示意图。如架构图可以看出本系统是一个基于MVC模式的系统,接下来介绍这三层的主要作用。(1)表现层:亦称视图层,即是MVC中的View层,此层的功能为将信息显示给用户。由CSS、HTML和JavaScript脚本文件组成,以响应successfulresponse.JSObjectprofile),并通过Thymeleaf模板引擎以及JS库jQuery将JSON消息中封装的数据呈现出页面并显示在浏览器中,完成页面内容的本地更新,向用户呈现动态效果。使用Ajax发送请求可以减少服务器请求来加快部分数据的加载,增强用户使用好感。(2)服务控制层:亦称为Controller层,属于MVC中的C层。服务控制层的主要任务是响应和处理表示层发送的相关服务业务请求。业务逻辑处理将处理结果封装为JSON消息,并将JSON消息响应返回到表示层进行处理,如果服务业务请求涉及到数据库的访问操作,则需要进行逻辑处理对应的操作,再转发到数据持久层进行处理,返回的处理结果留给该层的业务逻辑代码继续处理,该层的后台逻辑代码使用SpringBoot框架通过注解配置拦截和处理相关的服务请求。(3)数据持久层:该层相当于MVC中的M层,该层使用MyBatis框架配置相应的代码,通过SpringBoot的启动类配置扫描映射器文件,可以自定义SQL语句或者使用框架自带的语句,然后框架自动将数据模型映射到程序开发中的对象,与数据库发生交互操作。4.2系统数据库设计概述 实现网站系统项目都离不开数据库设计这一个重要设计步骤。通过设计表的字段,设计表与表之间的关系,在本系统中表与表中的关联关系没有明确的用外键引用关系,在服务层的逻辑处理来处理表与表的关系,减少表与表之间的处理逻辑,能提高处理性能。设计表要根据功能和实际情况设计,而且数据存储安全性也要在考虑范围,将这两个要素结合起来设计数据库,保证了数据库尽可能接近功能需求,减少了不必要的操作,提高了数据库的访问和操作效率。系统实体关系(ER)图(图4-2),用来明确的显示各个实体之间的映射关系,清晰的ER图有利于逻辑处理好各实体之间的关系,给编码逻辑带来便利,亦可以一眼就可以明白实体之间的关系。实体主要包括用户、文章、资源、角色、标签、文章类型、文章评论和留言。实体之间的一对多或多对多关系表使用第三个实体来记录关联。实体之间的关系也反映在实体-关系图中。图4-2博客系统实体关系E-R图实体关系图中的每个实体都对应了数据库中的某一张表,亦可能实体的数量会多于表的数量,因为在编码中可能要建立某个需要响应的实体亦或者是几个表之间挑选出字段来显示的实体。下面是本系统重要表对应表字段的介绍。(1)角色表:用来储存后台管理者要用到的角色信息,通过管理者表中的外键fk_role_id来找对应的角色信息,亦是角色资源关联表中通过role_id去查找该角色对应的资源列表,其中表结构如表4-1所示。表4-1角色表role字段名数据类型是否主键是否为空字段说明role_idvarchar(19)是否角色主键role_namevarchar(50)否否角色名称(2)文章表:对应文章实体类,用于储存管理者发布的文章,文章是本系统的基础功能,所以该表亦是必不可少的,文章表除了基础字段还包括了发表者和修改者两个字段,两个字段都是外键关联用户表,用来记录是哪个管理者对文章进行的操作,主要有其中表结构如表4-2所示。表4-2文章表article字段名数据类型是否主键是否为空字段说明article_idvarchar(19)是否文章主键titlevarchar(255)否否文章标题cover_imagevarchar(255)否是封面图片路径contenttext否否文章内容topint(1)否是文章是否推荐0不推,1推荐statusvarchar(2)否否状态,0草稿,1发布descriptionvarchar(255)否否文章简述commentchar(2)否否是否开启评论,0关闭,1开启create_timetimestamp否否创建时间create_user_idint(11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint(11)否否修改者,外键,关联用户表type_idvarchar(19)否否文章类型,外键,关联文章类型(type)表(3)资源表:对应资源实体类,此表除了记录资源信息以外,主要功能是通过用户的角色id去角色资源表中找到resource_id列表,再通过该列表去本资源表中找到对应的资源信息,表结构如表4-3所示。表4-3资源表resource字段名数据类型是否主键是否为空字段说明resource_idvarchar(19)是否资源主键resource_namevarchar(50)否否资源名称resource_urlvarchar(50)否否资源路径resource_typeint(2)否否资源类型,1是列表,2是按钮resource_parent_idvarchar(19)否否资源的父节点idresource_sortint(11)否否资源排序(4)文章类型表:对应文章类型实体类,用于文章表中的类型type_id作为外键所关联的表,通过关联获取问斩类型信息,其中表结构如表4-4所示。表4-4文章类型表type字段名数据类型是否主键是否为空字段说明idvarchar(19)是否文章类型主键type_namevarchar(50)否否文章类型名称type_descriptionvarchar(255)否否文章类型简述statuschar(2)否否状态,0正常,1不可用create_timetimestamp否否创建时间create_user_idint(11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint(11)否否修改者,外键,关联用户表(5)标签表:对应标签实体类,储存标签信息,该信息作用于文章,其中表结构如表4-5所示。表4-5标签表tag字段名数据类型是否主键是否为空字段说明tag_idvarchar(19)是否标签主键tag_namevarchar(50)否否标签名称descriptionvarchar(255)否否标签简述statuschar(2)否否状态,0正常,1禁用create_timetimestamp否否创建时间create_user_idint(11)否否创建者,外键,关联用户表update_timetimestamp否否修改时间update_user_idint(11)否否修改者,外键,关联用户表(6)评论表:对应评论实体类,用于储存用户对文章的一级评论信息,通过外键fk_article_id来获取整个文章的一级评论。其中表结构如表4-6所示。表4-6评价表comment字段名数据类型是否主键是否为空字段说明comment_idvarchar(19)是否评论主键user_namevarchar(50)否否评论者姓名emailvarchar(100)否否评论者邮箱urlvarchar(100)否是评论者自己网站路径statuschar(2)否否状态,0正常,1私密,2禁止显示contentvarchar(200)否否评论内容del_flagchar(2)否否删除标志,0正常,2删除create_timetimestamp否否创建时间update_timetimestamp否否修改时间fk_article_idvarchar(19)否否文章id,外键,关联文章表(7)评论回复表:对应回复评论实体类,用于储存文章中评论的回复的信息,即二级以上的评论信息,可通过fk_comment_id外键关联评论表来获取一级评论下的所有回复评论,其中表结构如表4-7所示。表4-7评论回复表reply_comment字段名数据类型是否主键是否为空字段说明reply_idvarchar(19)是否回复评论主键pidvarchar(19)否否回复的是哪条评论信息的iduser_namevarchar(50)否否评论者名称emailvarchar(100)否否评论者邮箱urlvarchar(100)否是评论者网站地址statuschar(2)否否状态,0表示正常,2表示禁止显示contentvarchar(200)否否评论内容del_flagint(1)否否正常(0),删除(2)create_timetimestamp否否创建时间update_timetimestamp否否修改时间fk_comment_idvarchar(19)否否主回复的id,外键,关联评论表(8)用户表:对应用户实体类,用于储存用户信息,是其他表中具有update_by、create_by字段的外键所对应的信息,其中表结构如表4-8所示。表4-8用户表字段名数据类型是否主键是否为空字段说明user_idint(11)是否主键user_namevarchar(50)否否用户名称emailvarchar(100)否否用户邮箱passwordvarchar(50)否否用户密码del_flagchar(2)否否正常(0),禁用(1),删除(2)create_timetimestamp否否创建时间create_byvarchar(11)否否创建者update_timetimestamp否否修改时间update_byint(11)否否修改者fk_role_idvarchar(19)否否角色id,外键,关联角色表(9)角色资源关联表:表结构如表4-9所示,本表是关联角色表跟资源表的抽象表,解决角色与资源关系的一对多。表4-9角色资源关联表字段名数据类型是否主键是否为空字段说明role_idvarchar(19)否否外键,关联角色表主键idresource_idvarchar(19)否否外键,关联资源表主键id(10)文章标签关联表:表结构如表4-10所示,该表跟上表角色资源关联表有相似之处,都是为了解决文章表与标签表的复杂的对应关系,该表是解决多对多的抽象表。表4-10文章标签关联表字段名数据类型是否主键是否为空字段说明article_idvarchar(19)否否外键,关联文章表主键idtag_idvarchar(19)否否外键,关联标签表主键id
5.系统实现本章结合第三章和第四章的内容,应用软件工程理论,实现了系统在实际开发中的功能需求,在功能模块方面主要有系统游客和系统管理员的功能模块。这两个模块集成在同一个体系结构中。5.1系统游客功能模块实现系统的表现层亦可简单理解为用户所看到所操作的页面,前端的系统界面使用bootstrap前端框架进行快速搭建,以及使用一些动画库(animate.css)或者是其他库来美化页面。其中系统游客功能模块表现层说明如下:index.html:系统前台首页,此页面主要是将文章列表进行展示,访问用户都可以访问。searchPage.html:文章搜索页,将文章的关键字搜索内容和文章分类以及标签分类所得的列表进行展示。articleReadPage.html:文章详情页,将文章的详细内容和评论内容展示。myNav.html:这个页面是用来定义引用代码块,防止重复定义块,其中定义的引用块有头部导航、右侧热门文章和推荐文章以及最近评论、博客基本信息、标签云。side.html:这个页面是用来定义引用代码块,防止重复定义块,其中定义的引用块左侧文章分类模块,以及回到顶部按钮块。message.html:游客留言页面,提供游客作为留下足迹式的存在。以上页面除了上述提到的技术对页面美化,为了提高用户体验最重要的是动态的效果数据的改变而不刷新整张网页,这就可以Thymeleaf模板引擎技术来实现或者通过jQuery或者JavaScript对节点进行操作从而动态修改节点内容实现页面局部刷新,提高用户体验实现用户需求。系统的服务控制层是基于SpringBoot和MyBatis框架实现的,可分为bean层、Service层和Controller层。三层中的核心层是Controller层,主要对视图进行解析,控制过滤处理请求的截获。接下来从Bean层、Service层以及Controller层对游客功能模块进行分析:(1)Bean层:Article:文章类,对应文章表,查询出的文章映射到此类中。ArticleTags:文章标签类,用于保存文章与标签信息。Comment:文章评论类,用于保存文章评论信息。CommentReply:文章回复评论类,用于保存回复评论的评论信息。FromCommentBean:提交评论内容映射类,用于保存只需要的评论内容信息。Tags:标签类,用于保存标签信息。Type:文章类型类,用于保存文章类型信息。(2)Service层:ArticleService:文章Service类,定义了对文章的操作。ArticleTagsService:文章标签关系Service类,定义了对文章标签的操作。CommentService:文章评论Service类,定义了对文章评论的操作。CommentReplyService:回复文章评论Service类,定义了对回复文章评论操作。SolrService:搜索引擎使用的Service类,定义了搜索的操作。TagsService:标签Service类,定义了对标签的操作。TypeService:文章类型Service类,定义了对文章类型的操作。图5-1邮箱通知代码图5-2文章搜索核心代码(3)Controller层:ArticleController:接收前端对文章的请求以及设计到数据库操作的转发操作到Service层进行逻辑操作,返回字符串或者是响应数据给请求者。CommentController:文章评论Controller类,控制与文章评论相关操作逻辑并响应请求返回JSON数据报文或字符串,其中有评论邮箱通知功能(图5-1)。IndexController:接收游客前台的数据访问请求。SolrController:为文章的搜索请求进行相应的类,本系统使用了solr全文搜索引擎,所以另外弄了一个控制类,并没有与文章控制类进行统一操作(图5-2)。TagsController:用于处理标签的请求操作并且数据进行响应。TypeController:处理文章类型的请求操作并且数据进行响应。还有与Bean层相关的Dao层,系统游客功能模块涉及的主要实现类有:ArticleMapper:文章Dao类,用于操作article表。ArticleTagsMapper:文章标签Dao类,用于操作article_tags表。CommentMapper:文章评论Dao类,用于操作comment表。CommentReplyMapper:文章评论Dao类,用于操作comment_reply表。TagsMapper:标签Dao类,用于操作tags表。TypeMapper:标签Dao类,用于操作type表。以上是主要实现类在游客功能模块中,通过这种明显的分工分层,很大程度上提高了代码的重用性,一定程度上降低了代码的关联性。5.2系统管理者功能模块实现上一节中讲述了有关游客前台的功能模块,接下来讲述关于管理者有关的表现层的功能模块:index.html:与前台首页区别不在同一个文件夹,后台管理首页用来显示一些该网站最新的信息,比如文章信息,评论以及留言等信息。login.html:后台管理员登陆页面。main.html:后台首页工作台页面。noAuth.html:访问未授权页面。articlePage.html:查看的文章列表页面。articleAdd.html:添加文章管理页面。articleEdit.html:修改文章管理页面。allCommentPage.html:文章评论管理页面。rolePage.html:角色管理页面。tagsPage.html:标签管理页面。typePage.html:文章类型管理页面。userPage.html:查看用户列表界面。userAdd.html:管理用户添加页面。userEdit.html:后台用户修改信息页面。系统的功能模块中,除了与前台游客使用到相同的文章模块、标签模块、以及文章模块以外,系统管理者功能模块还有:(1)Bean层:Resource:资源类,用于保存资源信息。Role:角色类,用于保存角色信息。RoleResource:角色资源关系类。SysUser:管理员类,用于保存管理员信息。图5-3资源列表和已选标志(2)Service层:ResourceService:资源Service类,定义了对资源的操作。RoleService:对角色的逻辑操作在本类中。RoleResourceService:本类主要是对角色添加权限和修改权限时的逻辑操作。SendMailService:发送邮箱Service类,定义了管理员回复评论时发送邮箱通知操作。SysUserService:管理员用户Service类,定义了对管理员用户的操作。(3)Controller层:ResourceController:对资源管理发送请求的控制层,通过处理再进行数据的返回给请求者,若需要逻辑处理则调用对应的ResouceService类进行处理。RoleController:角色主要是对增删改查的请求进行数据返回。SysUserController:管理员的增删改查操作并且进行数据返回。在Dao层中,除了与游客模块所用到的实现类以外,系统管理者功能模块还多增了几个类,如下:ResourceMapper:资源Dao类,用于操作resource表,通过资源的关联自身表获取已选和未选的内容(图5-3)。RoleMapper:角色Dao类,用于操作role表。RoleReSourceMapper:角色资源关系Dao类,用于操作role_resource表。SysUserMapper:管理员Dao类,用于操作sys_user。
6.系统测试为了检查系统是否符合系统规范,并在测试过程中发现系统分析和设计错误,所有网站项目都离不开系统测试步骤,这也是提高系统整体质量,从而提高系统可靠性和安全性的关键一步。6.1系统功能性测试使用黑盒测试,并设计了本系统相应的测试用例,包括系统游客前端模块和管理员后端模块,下文按照前端和后端称这两个模块,总共14个模块。接下来的表是各模块功能测试用例测试过程和结果。表6-1系统前端首页测试用例用例编号用例名称测试过程实际结果测试结论T001访问首页1、进入系统首页面文章列表正确显示,而且分页访问正常。首页的样式排版显示是否正确,显示内容是否显示完全。通过表6-2系统前端文章搜索测试用例用例编号用例名称测试过程实际结果测试结论T002文章关键字搜索1、进入系统首页面2、填写在搜索框中输入关键字3、点击提交按钮正确搜索出相关数据并显示,数据过多能正确分页,分页能正确访问。通过表6-3系统前端文章分类测试用例用例编号用例名称测试过程实际结果测试结论T003文章类型分类1、进入系统首页面2、点击文章类型正确按照文章类型进行分类,并可正常显示列表,数据过多能正确分页,分页能正确访问。通过T004文章标签分类1、进入系统首页面2、点击标签列表正确按照文章标签进行分类,并可正常显示列表,数据过多能正确分页,分页能正确访问。通过表6-4系统前端文章阅读测试用例用例编号用例名称测试过程实际结果测试结论T005文章详细阅读1、进入系统首页面2、点击文章列表中的文章能否跳转到文章阅读页面,跳转后文章的详细内容是否是对应点击的文章,文章显示是否正常。通过表6-5系统前端文章评论测试用例用例编号用例名称测试过程实际结果测试结论T006文章评论1、进入系统首页面2、点击某个文章进入阅读页面3、对文章进行评论或者是回复若该文章是开启评论操作,则可以在文章阅读末尾有评论功能,否则无法评论。评论时要填写游客的简单信息(邮箱以及昵称)。通过表6-6系统前端博主信息展示测试用例用例编号用例名称测试过程实际结果测试结论T007关于我信息展示1、进入系统首页面2、点击进入关于我页面正常显示页面内容。通过表6-7系统前端快速通道测试用例用例编号用例名称测试过程实际结果测试结论T008文章推荐、推荐文章、最新评论列表1、进入系统首页面在页面的右侧正常显示热门文章、最新评论列表、管理员推荐文章,点击能快速的跳转到对应的文章。通过表6-8系统管理者登录测试用例用例编号用例名称测试过程实际结果测试结论T009管理者登录1、进入管理者登录页面2、填写登录信息3、提交信息正确的管理者账号信息可以正常登录并跳转到后端首页,登录失败则阻止跳转并且有错误信息提示。通过表6-9系统用户管理测试用例用例编号用例名称测试过程实际结果测试结论T010用户新增1、进入用户管理页面2、点击新增用户按钮3、填写用户信息4、点击提交信息未登录状态不能访问该页面,未授权状态下亦不能访问操作该页面。登录状态以及有权限时正确的用户信息可正常新增。通过T011用户查询1、进入用户管理页面2、填写用户关键字3、点击查询按钮正常展示搜索出的信息。通过T012用户修改1、进入用户管理页面2、点击用户修改按钮3、填写更改的用户信息4、点击提交信息正确的用户信息可正常更改,授权用户可以修改其他用户的信息。通过T013用户授权1、进入用户管理页面2、点击角色下拉框3、选择需要修改的角色授权的用户可以进行该操作,未授权用户无法操作。通过表6-10系统角色管理测试用例用例编号用例名称测试过程实际结果测试结论T014角色查询1、进入角色管理页面2、填写角色关键字3、点击查询按钮未登录状态不能访问该页面,未授权时不能访问该页面,登录状态且管理员有权限时正常展示角色信息通过T015角色新增1、进入角色管理页面2、点击新增角色按钮3、填写角色信息4、点击提交信息未登录状态、未授权状态下不能操作该页面。登录状态以及有权限时正确的角色信息。通过T016角色赋权限1、进入角色管理页面2、点击角色权限按钮3、勾选属于该角色的权限4、点击提交信息未登录状态、未授权状态下不能操作该页面。登录状态以及有权限时勾选权限可正常赋权。通过表6-11系统文章管理测试用例用例编号用例名称测试过程实际结果测试结论T017文章查询1、进入文章管理页面2、填写文章标题关键字3、点击查询按钮未登录、未授权状态不能访问该页面,登录状态时正确展示文章列表。通过T018文章新增1、进入文章管理页面2、点击新增文章按钮3、填写文章信息4、点击提交信息添加文章操作需要有相应的权限才能够操作,有对应权限则可新增正常文章信息。通过T019文章编辑1、进入文章管理页面2、点击文章编辑按钮3、填写更改的文章信息4、点击提交信息需要授权管理者才能操作文章编辑并修改文章正确信息。通过T020文章删除1、进入文章管理页面2、点击删除文章按钮需要授权管理者才能操作删除并文章正常删除通过表6-12系统评论管理测试用例用例编号用例名称测试过程实际结果测试结论T021评论管理1、进入评论管理页面未登录、未授权状态不能访问该页面,登录状态时正确展示评论列表。通过T022评论回复1、进入评论管理页面2、点击评论详情按钮通过点击详情跳转到评论的对应文章,并且下拉到对应的评论列表,进行查看全回复并进行回复,管理员回复会通过邮箱发送给评论者告知回复信息。通过T023评论状态修改1、进入评论管理页面2、点击评论显示按钮修改状态按钮决定评论是否可以显示给其他游客看。通过表6-13系统标签管理测试用例用例编号用例名称测试过程实际结果测试结论T024标签查询1、进入标签管理页面2、填写标签关键字3、点击查询按钮未登录、未授权状态不能访问该页面,登录状态时正确展示标签列表。通过T025标签新增
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 181.1-2026液压传动元件的再制造第1部分:通用技术规范
- 小型家用电器制造工岗前岗中技能考核试卷含答案
- 2026年肿瘤外科上半年工作汇报
- 宝玉石琢磨工QC管理强化考核试卷含答案
- 陶瓷产品设计师操作安全竞赛考核试卷含答案
- 工程经济学第二章第三节
- 工业清洗工技能安全强化考核试卷含答案
- 网络信息审核员安全意识竞赛考核试卷含答案
- 硅片研磨工岗中安全生产知识考核试卷含答案
- 重冶净液工安全操作水平考核试卷含答案
- 《电子商务基础 第2版》 课件全套 王欣 项目1-7 电子商务认知 -网店开设
- 设备维修组长工作总结
- 急性创伤急救培训课件
- 南宁三中小升初数学试卷
- 医院环境清洁消毒与监测
- 建筑工程装饰设计统一标准及强制性标准规范
- JG/T 478-2015建筑用穿墙防水对拉螺栓套具
- 肌间静脉血栓抗凝治疗
- 《复杂系统理论》课件
- 《铁路技术管理规程》(普速铁路部分)
- 延长石油笔试题库
评论
0/150
提交评论