# Blog-Requirements-Specification **Repository Path**: wufan11/Blog-Requirements-Specification ## Basic Information - **Project Name**: Blog-Requirements-Specification - **Description**: 《基于SpringBoot的个人博客系统》项目需求分析 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 5 - **Created**: 2020-12-13 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《基于SpringBoot的个人博客系统》软件需求规格说明书 ### 修订表 | 编号 | 生成版本 | 修订人 | 修订章节与内容 | 修订日期 | | ---- | -------- | ------ | -------------- | ---------- | | 1 | 1.0 | 宋吴凡 | 初稿 | 2020-12-15 | | 2 | | | | | | 3 | | | | | | 4 | | | | | [toc] ## 1. 引言 ### 1.1 目的 编写这篇说明文档主要是阐述项目在实际生活中的背景来源,进而分析此项目开发的意义所在,对需求和功能进行分析,为系统设计奠定基础。其中系统设计从总体设计再到具体的实体设计,并给出相关的物理模型设计、逻辑模型设计以及数据库表的设计,明确了系统实现的目标。在系统实现中,为数据库设计人员提供相关数据库开发的技术指导,为前端页面开发人员提供相关页面设计的思路,为后端开发人员的框架搭建和具体功能模块的实现提供指导,最后描述对系统测试的要求,明确推送到生产环境中应达到的效果。 ### 1.2 范围 博客blog(又名网络日志),顾名思义,最早的基本功能就是支持用户在网站上写日志,并进行修改、删除、分类、标签的管理,以及对他人博客的阅读和评论等。简单说博客就是一篇文章,博客的内容也不固定,技术人员写博客的初衷是为了记录或学习某一个知识点。 本博客系统整体较为轻量级,采用了当前比较流行的技术框架进行开发。整体采用SpringBoot框架,简化了web开发的配置。数据库采用小型的MySQL,并利用JPA简化了持久化框架的实现,用于对数据库的连接和对象映射。前端采用thymeleaf模板引擎,嵌入标签与jsp的EL表达式相似,能及时渲染效果。调用Semantic UI框架,帮助我们实现jQuery和CSS流畅的动画效果。集成了Markdown编辑器,能方便快捷的编辑内容。 设计风格整体简洁,充满青春洋溢的气氛,体现新时代青年积极向上的个性,以及对美好生活的憧憬。页面的加载流畅,各模块功能完善,运行性能高。 ### 1.3 定义 Spring Boot:由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 MyBatis:一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MySQL:一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 Maven:是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。 ### 1.4 引用文件 [1] 柳伟卫.Spring Boot 企业级应用开发实战[J].北京大学出版社,2018年3月 [2] 杨开振.深入浅出springBoot2.x.[J/OL].人民邮电出版社,2018年8月 [3] Craig Walls 沃尔斯.Spring实战(第4版)[J].人民邮电出版社,2016年4月 [4] Kathy Sierra,Bert Bates.Head First Java(第二版·中文版)[J].中国电力出版社,2007年2月 ### 1.5 综述 从项目背景及意义为开端,分析具体的功能需求,描述系统设计的步骤,明确系统设计的要求,确定系统测试满足验收的标准。 ## 2. 总体描述 ### 2.1 产品描述 了解和对比同类型的博客产品,确定博客系统的功能性需求以及非功能性需求,使用UML建模语言来对本系统进行建模,规范化整个开发流程,采用软件工程的管理思想,选择瀑布模型作为软件开发模型来控制整个博客系统开发的生命周期。系统以实现个人博客系统为基础,并扩展开发基本的博客前端展示页面和后端管理页面。 #### 2.1.1 系统接口 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213112926770-1017228667.png) 1. 首页接口 - 根据时间获取博客并分页显示 - 获取n个分类 - 获取n个标签 - 根据时间获取n个博客 2. 登录接口 - 根据用户密码查询用户 3. 后台博客管理接口 - 查询所有博客并分页显示 - 根据分类查询 - 根据标题查询博客 - 根据id删除博客 - 新增博客 4. 后台标签管理接口 - 增加标签 - 查询所有标签 - 根据id删除标签 - 根据标签名称查询标签 - 更新标签 5. 后台分类管理接口 - 增加分类 - 查询所有分类 - 根据分类名称查询分类 - 删除分类 - 更新分类 6. 评论管理接口 - 按时间查询评论 - 根据文章标题查询评论 7. 注销接口 - 销毁session 8. 归档页接口 - 根据时间获取博客,并根据年份分成多个元素返回 9. 标签页接口 - 查询全部标签 - 根据标签查询博客 10. 分类专栏页 - 查询全部分类 - 根据分类查询博客 11. 博客详情页接口 - 根据id查询博客 - 获取该评论下的所有评论 - 增加评论 #### 2.1.2 用户界面 ![](https://img2020.cnblogs.com/blog/2218892/202011/2218892-20201130164758020-1893715576.png) 管理员(我): 1. 用户名和密码登录后台管理 2. 发布新博客 3. 对博客进行分类 4. 对博客打标签 5. 根据标题,分类,标签查询博客 6. 修改博客 7. 删除博客 8. 新增一个分类 9. 修改一个分类 10. 删除一个分类 11. 根据分类名称查询分类 12. 新增一个标签 13. 修改一个标签 14. 删除一个标签 15. 根据名称查询标签 普通访客: 1. 分页查看所有的博客 2. 快速查看博客数最多的6个分类 3. 查看所有的分类 4. 查看某个分类下的博客列表 5. 快速查看标记博客最多的10个标签 6. 查看所有的标签 7. 查看某个标签下的博客列表 8. 根据年度时间线查看博客列表 9. 快速查看最新的推荐博客 10. 用关键字全局搜索博客 11. 查看单个博客内容 12. 对博客内容进行评论 #### 2.1.3 硬件接口 - 支持amd64、i386、arm等CPU架构的计算机, - 支持移动端、PC端等设备 - 支持最低335X610 最高4096×2160分辨率下的正常布局显示 #### 2.1.4 软件接口 - 数据库:MySQL 5.0及8.0版本 - 操作系统:Linux、windows10 32位、64位、Android - 运行环境:JDK 1.8 #### 2.1.5 通信接口 - 支持http、https应用层传输协议 - 支持虚拟局域网、无线局域网 #### 2.1.6 内存约束 - 内存支持最低512MB #### 2.1.7 现场适应性需求 - 支持单机系统和分布式系统 - 支持在Java环境下直接运行jar包进行部署 - 支持在Tomcat服务器上部署war包 ### 2.2 产品功能 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201212233622377-1075295763.png) ### 2.3 用户特点 本博客系统的用户以青年学生为主,同时兼顾互联网开发人员,给个人用户带来更好的博客书写体验,可向大众展示自己的所思所想,树立一面自己的窗口。 ### 2.4 约束 - 法规政策:严格按照中华人民共和国网络安全法进行软件的编写 - 硬件局限:保证8G以上内存,1080p显示器、10g硬盘空间 - 与其他应用的接口:保证引入第三方软件的安全性 - 并行操作:允许协同开发 - 高级语言需求:基于Java、HTML、JavaScript、css - 安全:保证开发环境的安全稳定 ### 2.5 假设和依赖关系 - 为了项目的开发和实施,在必要时对现有的软件开发流程进行详细的了解。 - 团队成员对软件开发过程使用的性能良好的软件有较好的了解,明确其中必要的功能,为本项目提供完整的功能和性能需求资料,以便于对其进行分析,从而形成完善的软件需求。 - 项目团队掌握先进的能够适用于该项目的技术,这是系统的性能是否优化和项目能否成功的保证。 ### 2.6 需求分配 - V1版本为单体应用,保证所有访客和单个博客用户的正常使用,不对外提供注册。 - V2版本提供对外注册,可供多个博客用户使用。 - V3版本根据访客量的增长,升级为微服务应用。 ## 3. 具体需求 ### 3.1 外部接口 无特定输入和输出的接口 ### 3.2 功能 #### 3.2.1 用例描述 https://www.cnblogs.com/BuildingYDream/p/14054495.html ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190351517-367034633.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190431768-141692150.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190456704-1135517386.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190521899-91252227.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190615933-876727017.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190627847-1818916195.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190645219-1154730041.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190714748-533207666.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190802043-1459015795.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190819557-764785885.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190835291-1247390458.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190852209-145573505.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201190941863-1969319978.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201191009284-217725164.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201191028262-1224332012.png) ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201201191041850-651633866.png) #### 3.2.2 顺序图 - 管理员登录顺序图 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201206213040833-227763792.png) - 博客管理顺序图 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201206233419464-1630575502.png) - 访客浏览顺序图 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201207000557411-693681462.png) #### 3.2.3 分析类图 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201207000410430-696314585.png) #### 3.2.4 功能模块 - 首页:包括左边博客列表、博客概览、展示分类排行、展示标签排行、最新博客推荐等模块. ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213114253472-1454470693.png) - 博客详情页:用来查看博客文章的详情,包括banner大图、文章标题、文章内容、标签、分类、作者信息、发表时间、评论的发布等模块。 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213121045646-1651668436.png) - 分类页:用来查看所有添加的分类,以及每个分类下的博客文章列表。 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213121701955-1699901385.png) - 标签页:用来查看所有添加的标签,以及每个标签下的博客文章列表。 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213121822566-1880330915.png) - 归档页:按年份的时间线排列博文,并统计发布的博文数量。 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213121912680-776573516.png) - 关于我页:博客作者的介绍,并配上一张照片,通过标签展示爱好、技术、联系方式等。 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213122036603-1787115229.png) - 管理员登录页:通过用户名和密码登录到后台进行博客的管理 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213122221106-1740146941.png) - 博客管理:可以发布、修改、删除、查询博客 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213122353708-1402378630.png) - 分类管理:可以新增、修改、删除、查询分类 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213123204329-1500635905.png) - 标签管理:可以新增、修改、删除、查询标签 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213123258526-2116541701.png) ### 3.3 性能需求 - 支持多端设备的同时访问 - 支持多个访客同时发起请求 - 页面加载时间在0.5秒之内 - 服务端响应时间在1秒之内 - 在3秒内返回确认信息。 ### 3.4 数据库逻辑需求 ![](https://img2020.cnblogs.com/blog/2218892/202012/2218892-20201213145755140-1843125762.png) - 博客文章表设计:博客文章表用来存储每篇文章的所有信息,以满足博客用户发布文章的需求。 - 博客标签表设计:博客标签表用来存储每篇文章的所有标签,记录每篇文章所打上的标签。 - 标签表设计:标签表用来存储添加的所有标签,记录标签的名称。 - 分类表设计:分类表用来存储添加的所有分类,记录分类的名称。 - 评论表设计:评论表用来存储发布的所有评论,记录评论的相关信息。 - 用户表设计:用户表用来存储管理博客的用户信息,即登录后台的管理员账户。 ### 3.5 设计约束 #### 3.5.1 标准依从性 - 计算机软件开发规范CB8566-88 - 计算机软件产品开发文件编制指南CBB567-88 - 阿里巴巴编码规范(Java) ### 3.6 软件系统属性 #### 3.6.1 观感需求 为了打造出一款轻量又简洁清新的博客产品,既能满足年轻用户的使用,又能避免大众的审美疲劳。我们采用了一款小众但精美的前端界面开发框架——Semantic UI,semantic代表语义化,顾名思义,语法的定义可读性好,方便我们定制出年轻化的界面,同时利用CSS3定制出生动的动画特效,以及简约实用的样式,能够对markdown格式文章规范的展示,例如对代码的语法高亮展示等。响应式布局的特性,可适配电脑端,移动端等设备的浏览。 #### 3.6.2 易用性需求 这款博客主要面向青年群体,所以我们摒弃各种繁杂的菜单选项,选择的字体大小适中,通过分明的字体颜色和形象的图标,吸引访客进行浏览,可专注地阅读感兴趣的博客,了解作者的所思所想,轻松愉悦的与作者进行交流互动。管理者即博客的用户,通过极简的后台管理界面,可以快捷的管理博客的相关信息,Markdown插件的引入,带来丰富的辅助编辑功能,并可以一边书写一边预览效果,发布的博客更能体现作者的个性。 #### 3.6.3 可执行需求 在部署到云服务器后,从浏览器上访问博客站点,首页整体界面加载时间在200ms即0.2s之内,所有DOM对象和数据在0.6s内加载完毕,其余子栏目的加载时间更短,查阅博客文章详情的时候,加载时间在0.5s之内,达到极其流畅的效果。得益于统一的RESTful规范接口对数据的传输,以及thymeleaf对公共页面元素抽取,避免了资源的重复利用。 #### 3.6.4 安全性需求 访客只能对博客信息进行浏览,管理博客的信息,需要登录到后台管理系统,在登录时进行MD5的密码的加密,并配置拦截器对未登录的非法的越权请求进行拦截。同时,在云服务中对安全组进行配置,防止不明地址的请求和攻击。 #### 3.6.5 系统的完整性需求 这款博客系统功能不仅可以发布博客文章,还可以对博客文章进行分类和归档,markdown格式对于博客文章的备份和迁移十分的简便。用户对博客可以添加个性化的标签和分类,也可以通过评论与访客进行互动,保持文明的评论环境。 #### 3.6.6 系统的可扩充性与可维护性 基于Spring Boot框架的博客开发,顺应未来微服务项目的发展趋势,可以将不同业务模块进行拆分,降低耦合度,实现单一职责的目标。随着未来博客访问量的增加,我们可以考虑将不同业务模块部署到集群中。在部署项目的服务器后台,利用spring的Aspect实现切面,对运行中的各种请求操作进行实时的日志记录,便于运维人员的调试和维护。 ## 4. 验收验证标准 ### 4.1 首页模块 该模块的接口来自创建的IndexController控制器类中,@GetMapping注解将HTTP Get请求映射到toIndex方法。首先设置默认页面为1,再设置页面大小为8条,来为分页显示提供基本参数。再通过博客、分类、标签相关业务类,将查询到的信息存入list集合中,最后利用Spring中的Model接口将信息返回到前台的首页。从而实现博客分页列表、展示标签排行、展示分类排行、最新博客推荐、博客详情等功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | | ---- | ------------ | :----------------------: | ------------------------------------------------------------ | | 1 | 博客分页列表 | 首页左方博客列表页面 | 最上方显示博客栏目名称、博客篇数。下方列出所有的博客概览信息,包括博客的标题,博客的摘要,博客的作者,发布日期,所属分类以及缩略图。点击博客标题或缩略图可以跳转到博客详情页,点击所属分类标签可以跳转到该标签下博客列表页面,最下方显示上一页与下一页的跳转按钮,下方显示当前页数,总页数,以及记录的条数。 | | 2 | 展示分类排行 | 首页右上方的分类栏目 | 最上方显示分类栏目名称以及更多的跳转按钮,点击更多按钮也可以跳转到分类博客列表页面。在下方的分类列表中,显示分类的名称,以及该分类下博客文章的篇数。点击每行分类,可以跳转显示该分类下博客列表。 | | 3 | 展示标签排行 | 首页右方的标签栏目 | 最上方显示标签栏目名称以及更多的跳转按钮,点击更多按钮也可以跳转到标签博客列表页面。在标签栏目下方显示所有的标签,包括标签的名称以及标签下博客的篇数。点击每个标签,即可跳转显示该标签下博客列表。 | | 4 | 最新博客推荐 | 首页右下方的最新推荐栏目 | 最上方显示最新推荐栏目的名称。下方的博客标题,按发布日期从新到旧排列,点击博客标题即可跳转到博客详情页面。 | | 5 | 博客详情 | 博客详情页 | 打开博客详情页,在最上方会显示这篇博客的作者以及发布的日期。下方显示一张与博客主题相关的大图,在大图下方显示博客的标题,右方显示博客的来源,例如原创、转载等,默认为原创。在标题下方,是博客的正文部分,将后台写的markdown博客,按照markdown的标准样式进行展示,其中代码部分,会显示黑色背景,白色的文字,相关关键字进行高亮显示。在正文下方,显示这篇文章包含的标签,并居中显示赞赏的按钮,点击赞赏按钮会弹出作者的支付宝与微信的二维码。下方淡绿色区域,再次显示作者名字以及联系方式,发表的具体日期时间,版权声明。最下方,显示所有发表的评论,包括评论者的姓名,评论日期时间以及评论的内容。在评论下方,可以输入评论信息,姓名,邮箱,点击发布按钮即可发布评论。 | ### 4.2 分类模块 该模块的接口来自创建的TypeShowController控制器类中,@GetMapping注解将HTTP Get请求映射到types方法,并通过接收到的路径参数id,返回指定分类id下拥有的博客列表。同时,将查询到的所有分类、分页信息、分类id,通过Model接口将信息返回到前台的分类页。从而实现展示所有分类,展示单个分类下博客列表的功能 | 序号 | 功能名称 | 功能界面 | 详细说明 | | ---- | ---------------------- | ------------------------------------------ | ------------------------------------------------------------ | | 1 | 展示所有分类 | 分类栏目的最上方是展示所有分类的界面 | 在分类栏目,在右上方显示分类的总数,下方将排列出每种分类,包括分类的名称,分类下博客的篇数。点击单个分类按钮,即可切换展示单个分类下博客列表。 | | 2 | 展示单个分类下博客列表 | 分类栏目下方是展示单个分类下博客列表的界面 | 将单个分类下所有的博客文章排列显示,包括博客的标题,摘要,作者名字,发布日期并显示所属分类标志,与4.1中博客分页列表布局基本一致。 | ### 4.3 标签模块 该模块的接口来自创建的TagShowController控制器类中,@GetMapping注解将HTTP Get请求映射到tags方法,接下来的业务逻辑处理与4.2中分类的处理类似。从而实现展示所有标签,展示单个标签对应博客列表的功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | | ---- | ------------------------ | ------------------------ | ------------------------------------------------------------ | | 1 | 展示所有标签 | 展示所有标签界面 | 在页面的最上方展示所有的标签,并会统计标签的总数和每个标签的内容数。下面显示所选择的标签的博客的列表,列表下面分左上右下显示页面的跳转按钮,最下方显示当前页数,总页数,该页总记录数。便于管理和读者查找。 | | 2 | 展示单个标签对应博客列表 | 展示单个标签对应列表界面 | 通过选择标签后下面会跳转到相应的标签列表,会有相应的博客基础信息:标题,作者名字,发表日期,观看数,所属标签印记,该标签下的分类,文章的开头内容。可以使你找到自己所喜爱的内容。 | | 3 | 博客详情 | 每个博客对应页面界面 | 跳转到该博客的详情页面,介绍和4.1一致。 | ### 4.4 归档模块 该模块的接口来自创建的ArchiveShowController控制器类中,@GetMapping注解将HTTP Get请求映射到archives方法,将归档博客以年份:按年度查询到的博客键值对形式存储在map集合中,并获取统计的博客总数,通过Model接口将信息返回到前台的归档页,从而实现按年度时间线展示博客列表的功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | |---|---|---|---| | 1 |按年度时间线展示博客列表 | 时间线列表界面 | 在页面的中间会有相应的年份,并通过年份进行排列,最上方的为最新一年所发表的博客,年份下面博客列表通过月份和日期排列,最新的位于最上方。下面为页面跳转和页面内容统计。方便读者通过时间线查找自己所需的博客。 | | 2 |博客详情 | 博客详细介绍页面 |跳转到所选择的博客详情页面,介绍和4.1一致。 | ### 4.5 分类管理模块 该模块的接口来自后台管理包下的TypeController控制器类,通过@PostMapping将HTTP Post请求映射到addType和editType方法,根据分类名称,进行相应的save和update操作。再通过@GetMapping注解,根据返回的路径参数id,进行相应的delete操作。从而实现新增分类、修改分类、删除分类的功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | |---|---|---|---| | 1 |新增分类 | 管理后台展示所有分类界面 | 在页面的中间会有各个博客内容的分类,每个文章依据什么分类,在中间界面的右下角有个新增按钮,管理员可以通过点击新增来对分类进行增加,然后点击提交完成新增分类。 | | 2 |修改分类 | 管理后台展示所有分类界面 | 在页面的中间会有分类名称,每个文章依据什么分类,每个分类名称的后面都会有一个编辑按钮,管理员可以通过点击编辑来对分类名字进行编辑,然后点击提交完成修改分类。 | | 3 |删除分类 | 管理后台展示所有分类界面 | 在页面的中间会有分类名称,每个文章依据什么分类,每个分类名称的后面都会有一个删除按钮,管理员可以通过点击删除来对分类进行删除。 | ### 4.6 标签管理模块 该模块的接口来自后台管理包下的TagController控制器类,具体方法的实现与4.5分类管理模块相似。 | 序号 | 功能名称 | 功能界面 | 详细说明 | |---|---|---|---| | 1 |新增标签 | 管理后台展示所有标签界面 | 在页面的中间会展示所有博客的标签,在中间界面的右下角有个新增按钮,管理员可以通过点击新增来对标签进行增加,然后点击提交完成新增标签。 | | 2 |修改标签 | 管理后台展示所有标签界面 | 在页面的中间会展示所有博客的标签,每个标签名称的后面都会有一个编辑按钮,管理员可以通过点击编辑来对标签名字进行编辑,然后点击提交完成修改标签。 | | 3 |删除标签 | 管理后台展示所有标签界面 |在页面的中间会展示所有博客的标签,每个标签名称的后面都会有一个删除按钮,管理员可以通过点击删除来对标签进行删除。 | ### 4.7 博客管理模块 该模块的接口来自BlogController控制器类,通过@PostMapping将HTTP Post请求映射到addBlog方法,再通过设置user、blog、tag、type对象的属性,根据blog的id保存或更新博客,从而实现发布博客和修改博客的功能。通过@GetMapping将HTTP Get请求映射到deleteBlogs方法,根据前台带来的路径参数id,进行删除,从而实现删除博客的功能。通过@PostMapping注解将HTTP Post请求映射到searchBlogs方法,将搜索到的所有博客通过model方法向博客管理前台传值,从而实现查询博客的功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | |---|---|---|---| | 1 |发布博客 | 发布博客 | 在页面的右上方会有一个发布标签,填写标题,分类,标签和内容,即可发布博客。 | | 2 |修改博客 | 管理发布之后的博客 | 在页面的中间会展示所有博客的标签,每个标题名称的后面都会有一个编辑按钮,管理员可以通过点击编辑来对博客内容名字进行编辑,然后点击保存完成修改博客。 | | 3 |删除博客 | 管理发布之后的博客 |在页面的中间会展示所有博客的标签,每个标题名称的后面都会有一个删除按钮,管理员可以通过点击删除来对博客进行删除。 | | 4 |查询博客 | 查询发布之后的博客 |在页面的中间会展示所有博客的标签,在标题上方有两个搜索框,可以输入博客的标题或者选择博客的分类来对发布的博客进行搜索。| ### 4.8 管理员登录模块 该模块的接口来自LoginController控制器类,通过@PostMapping将HTTP Post请求映射到login方法,根据请求参数用户名和密码来核对用户信息并设置session值,从而实现管理员登录的功能。 | 序号 | 功能名称 | 功能界面 | 详细说明 | |---|---|---|---| | 1 | 管理员登录 | 登录管理员账号 | 在页面的中间会有两个输入框,一个填写账号一个填写密码,输入正确的账号密码后,即可登录。 |