(赠源码)基于java+springboot+mysql的宠物问答系统的设计与实现00083-计算机毕业设计项目选题推荐

摘  要

宠物问答系统是一个面向宠物爱好者和饲养者的在线平台,旨在为用户提供宠物信息、保健建议、宠物活动、报名信息和留言管理等功能。随着人们对宠物的关注度增加,宠物问答系统的开发具有重要意义。通过该系统,用户可以获取到相关的宠物知识和建议,提高宠物饲养的质量和幸福度。

本论文的主要工作是设计和开发一种宠物问答系统,实现系统用户的注册与登录、宠物信息的展示与查询、保健建议的发布与获取、宠物活动的管理与参与、报名信息的收集与处理以及留言的管理等功能。为了实现这些功能,我们采用了前端技术HTML、CSS、JavaScript和后端技术Java、SpringBoot框架、MySQL数据库。通过使用这些技术和工具,我们成功实现了宠物问答系统的设计与开发。

通过对宠物问答系统的设计与开发,我们取得了一定的成果。系统用户可以方便地获取宠物信息和保健建议,参与宠物活动,并与其他用户进行交流。然而,目前的系统仍存在一些局限性,如用户体验还有待优化、功能扩展的空间等。为了进一步提升系统的效果,我们将继续改进用户界面的设计,增加更多实用的功能,并考虑引入先进技术,提供更智能化的宠物问答服务。

关键词:宠物问答系统,Java,MySQL,springboot

A Pet questions and answers System Based on Springboot

Abstract

The Pet questions and answers System is an online platform aimed at pet enthusiasts and owners, aiming to provide users with pet information, health advice, pet activities, registration information, and message management functions. As people's attention to pets increases, the development of pet question and answer systems is of great significance. Through this system, users can obtain relevant pet knowledge and advice, improving the quality and happiness of pet ownership.

The main work of this paper is to design and develop a pet question and answer system, which realizes functions such as user registration and login, display and query of pet information, publication and acquisition of health advice, management and participation of pet activities, collection and processing of registration information, and management of comments. To achieve these functions, we adopted front-end technologies such as HTML, CSS, JavaScript, and back-end technologies such as Java, SpringBoot framework, and MySQL database. By using these technologies and tools, we have successfully designed and developed a pet question answering system.

We have achieved certain results through the design and development of a pet question and answer system. System users can easily obtain pet information and health advice, participate in pet activities, and communicate with other users. However, the current system still has some limitations, such as the user experience still needs to be optimized, and there is room for functional expansion. In order to further enhance the effectiveness of the system, we will continue to improve the design of the user interface, add more practical functions, and consider introducing advanced technology to provide more intelligent pet question and answer services.

Key words: Pet questions and answers system; Java; MySQL; Springboot

目  录

摘  要 I

Abstract II

第1章 项目概述 1

1.1 问题描述 1

1.2 项目目标 1

1.3 项目适用范围 1

1.4 涉众 1

第2章 需求分析 2

2.1 业务需求 2

2.1.1 业务流程 2

2.2 功能性需求 3

2.3 非功能性需求 7

2.4 项目约束 7

2.5 运行环境 7

第3章 系统设计 9

3.1 技术路线 9

3.2 软件体系结构设计 9

3.2.1 功能结构 9

3.2.2 系统架构 9

3.3 外部接口 10

3.3.1 硬件接口 10

3.4 数据库设计 11

3.4.1 概念结构设计 11

3.4.2 表的详细设计 12

3.5 用例实现 19

3.5.1 用户信息用例实现 19

3.5.2 宠物信息用例实现 20

第4章 系统实现 23

4.1 核心功能实现 23

4.2 关键技术难点与解决方案 38

第5章 系统测试 39

5.1 功能测试 39

5.2 非功能测试 39

5.3 测试总结 40

第6章 结论与展望 42

参考文献 43

致  谢 44

第1章 项目概述

1.1 问题描述

随着人们对宠物的关注度不断增加,宠物饲养已经成为现代生活中的一部分。然而,宠物饲养过程中常常会遇到各种问题和困惑,例如如何正确照顾宠物、如何解决宠物行为问题等。因此,开发一个方便、可靠的宠物问答系统具有重要的背景和意义。

目前市面上存在一些宠物问答类产品,但往往存在以下问题:

1、信息碎片化:现有系统中的宠物知识和建议往往散布在不同的平台和网站上,用户需要耗费大量时间和精力来搜索和整理相关信息。

2、可信度不高:许多宠物问答平台上的回答质量参差不齐,缺乏权威性和可靠性,给用户带来了困惑和误导。

3、互动交流不足:现有系统通常缺乏用户之间的实时互动和交流,无法提供个性化的问题解答和交流平台。

4、功能有限:一些宠物问答系统仅提供基本的问题和答案,缺乏更多的功能如宠物活动管理、报名信息收集等。

因此,开发一个综合性、可信度高且具有互动交流功能的宠物问答系统对于宠物爱好者和饲养者来说是非常有意义的。该系统将为用户提供全面、可靠的宠物知识和建议,促进用户之间的互动交流,提升宠物饲养的质量和幸福度。

1.2 项目目标

宠物问答系统的项目目标是建立一个综合性、可靠且互动性强的平台,以满足宠物爱好者和饲养者在宠物饲养过程中的需求,并提升他们的宠物饲养体验。具体目标包括整合并提供权威、可靠的宠物知识和建议,包括饲养技巧、健康保健、行为训练等方面的内容,使用户能够更好地了解和照顾自己的宠物。同时,打造一个积极互助的社群环境,让用户能够分享经验、提出问题、回答评论,并与其他用户或专业人士进行实时交流和讨论,从而形成一个互动性强的宠物爱好者社区。

此外,宠物问答系统还旨在提供宠物活动的管理和发布功能,包括宠物展览、讲座、比赛等。用户可以通过系统方便地查看和报名参加感兴趣的宠物活动,拓展宠物社交圈子并获取更多有益的信息。系统将根据用户的兴趣和需求,通过算法分析和智能推荐,向用户提供个性化的宠物知识和相关内容,让用户能够更轻松地获取感兴趣的信息,并提高用户体验。

为了实现上述目标,我们将分析现有宠物问答系统存在的问题和不足之处,并进行系统设计和改进。通过优化用户界面、改善功能操作,使系统更加友好和易用。综合而言,该项目旨在打造一个综合性、可靠且互动性强的宠物问答系统,帮助宠物爱好者和饲养者更好地照顾和享受与宠物相伴的美好时光。

1.3 项目适用范围

宠物问答系统为宠物爱好者提供一个交流互动的平台,让他们分享经验、提出问题,并与其他宠物爱好者或专业人士进行实时交流和讨论。这将有助于建立一个积极互助的宠物爱好者社群,提升用户的宠物饲养体验。对于刚开始养宠物的人来说,他们可能会面临一系列问题和困惑。宠物问答系统可以为新手饲养者提供全面而可靠的宠物知识和建议,帮助他们更好地了解和照顾自己的宠物,从而提高宠物饲养水平。此外,宠物问答系统还可以提供宠物保健和健康管理方面的知识和建议,包括宠物的日常护理、健康检查、预防措施等。宠物饲养者可以通过系统获取到宠物健康管理的相关信息,确保宠物的健康和幸福。同时,宠物问答系统还可以提供宠物活动的管理和发布功能,包括宠物展览、讲座、比赛等。用户可以方便地通过系统查看和报名参加感兴趣的宠物活动,拓展宠物社交圈子并获取更多有益的信息。综上所述,宠物问答系统适用于各类宠物爱好者和饲养者,无论是新手还是有经验的饲养者。该系统提供方便、可靠且互动性强的平台,帮助用户解决问题、获取知识,并参与宠物活动,提升宠物饲养体验。

1.4 涉众

系统设计人员和系统开发人员:他们是负责设计和开发宠物问答系统的技术团队,期望能够有清晰的系统需求和设计文档,准确理解用户需求并按时交付高质量的系统。

问卷发起者:作为宠物问答系统的功能之一,问卷发起者希望能够方便地创建问卷调查、设置问题选项、定制调查逻辑,并能够收集和分析问卷结果。

问卷参与者:他们是被邀请或主动参与问卷调查的宠物爱好者和饲养者。他们期望问卷能够简洁明了、易于理解,回答问题时操作简单快捷,并希望自己的意见和反馈能够得到重视和处理。


第2章 需求分析

2.1 业务需求

报名的宠物活动模块是宠物问答系统当中最重要的一个模块,这个模块主要是用户选择报名,实现在线进行报名的功能,在这个模块当中涉及到了管理员,用户这两种角色,用户进行注册,管理员对这两种角色进行管控,同时实现宠物信息、报名信息这一主要功能。

2.1.1 业务流程

管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。

用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。

宠物问答系统的业务流程如下图所示。

图2.1 系统业务流程图

2.2 功能性需求

管理员可以通过管理宠物信息用例对宠物信息、宠物活动、保健建议、报名信息进行维护,包括对宠物信息的增删改查。管理宠物问答系统用例图如图2.4所示。

图2.2 系统用例图

表2.1 社区交流用例描述

描述项

说明

用例名称

社区交流

用例描述

用户可以将自己想说的话发表在交流板,其他的用户可以查看,已注册的用户可以回复

参与者

用户

前置条件

用户是注册用户并成功进入该系统

后置条件

交流添加成功且显示在交流板

主事件流

系统检查是否是普通用户

未注册的用户可以查看交流板的内容

已注册的用户的交流表单显示出来可以进行交流和回复他人的交流

异常事件流

e1.报500错误

e2.数据库连接异常

e3.交流内容不显示

表2.2 评论用例描述

用例名称

评论

参与者

用户

描述

用户发表评论

前置条件

用户已登录

后置条件

评论内容不违规

事件流

(1)在评论页输入评论数据,提交评论

(2)更新并显示评论板

补充说明

(a)评论内容不能为空

表3-1 收藏用例描述

用例名称

收藏

参与者

用户

描述

用户将内容加入收藏夹

前置条件

用户已登录

后置条件

事件流

(1)在收藏页加入收藏

(2)更新并显示收藏夹

补充说明

表2.3 用户管理用例描述

描述项

说明

用例名称

用户操作

用例描述

管理员正确登录后台管理的条件下,对用户进行管理

参与者

管理员

前置条件

管理员登录成功并跳转到后台主界面

后置条件

操作成功

主事件流

管理员跳转用户管理页面,查询用户详情的信息

管理员可以删除用户信息

异常事件流

e1.报500错误

e2.数据库连接异常

表2.4 宠物信息管理用例描述

描述项

说明

用例名称

宠物信息操作

用例描述

管理员正确登录后台管理的条件下,对宠物信息模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入宠物信息管理页面,查询宠物信息的信息

(2)管理员可以对宠物信息进行增删除和编辑宠物信息操作

(3)管理员新增宠物信息,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表2.5 宠物活动管理用例描述

描述项

说明

用例名称

宠物活动操作

用例描述

管理员正确登录后台管理的条件下,对宠物活动模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入宠物活动管理页面,查询宠物活动的信息

(2)管理员可以对宠物活动进行增删除和编辑宠物活动操作

(3)管理员新增宠物活动,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表2.6 保健建议管理用例描述

描述项

说明

用例名称

保健建议操作

用例描述

管理员正确登录后台管理的条件下,对保健建议模块进行管理

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入保健建议管理页面,查询保健建议的信息

(2)管理员可以对保健建议进行增删除和编辑保健建议操作

(3)管理员新增保健建议,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

2.3 非功能性需求

基于上面功能性需求,非功能需求也是项目设计中一项必定考虑进去的工作。首先是安全性的需求,其次是界面必须整洁干净等的需求,再次就是可扩展的需求。除此之外,还有性能、可靠性的需求,具体可以表示在如下表所示。

表2.1 系统非功能需求表

安全性

只有在登录的情况下才能进行相应功能的操作,尤其是管理员功能,防止后台管理端被侵入。

可靠性

系统的功能明确,操作一个功能,不会产生额外的功能影响,操作功能的时候,页面也不会造成额外的跳动。

性能

响应时间尽量控制在1s之内

可扩展性

后台采用自顶向下的开发,利于开发与维护。

易用性

在用户使用上,尽可能使用更多的图标进行功能暗示,提供系统的可阅读性和友好性。

可维护性

前台和后台注意按照模块化开发的原则,对于组件和方法的保存和包的建立需要遵照一般开发原则,以利于维护。

2.4 项目约束

1、技术约束:需要确保项目开发所需的技术和工具已经掌握和可用。例如,项目可能依赖特定的编程语言、数据库系统或框架,开发团队需要具备相应的技术能力。

2、时间约束:项目需要在规定的时间内完成,因此需要制定合理的项目计划和进度安排,并严格执行。同时,也要考虑到项目中可能出现的风险和延迟因素,以便及时调整计划。

3、资源约束:项目需要足够的人力、物力和财力资源支持,包括开发人员、测试人员、硬件设备、软件许可等。必须确保这些资源的可用性和充足性,以满足项目需求。

4、安全约束:宠物问答系统涉及用户的个人信息和交流内容,必须确保系统具有良好的安全性和隐私保护机制,防止未经授权的访问和数据泄露。

5、第三方接口约束:如果项目需要与第三方系统或平台进行集成,例如支付系统、地图服务等,需要确保已经获得相应的接口和授权,以确保系统功能的完整性和稳定性。

6、用户体验约束:宠物问答系统需要提供良好的用户体验,包括简洁明了的界面设计、快速响应的系统性能、友好的操作流程等。必须考虑用户的使用习惯和期望,以满足他们的需求并提高系统的接受度。

7、法律法规约束:项目开发和运营必须遵守相关的法律法规,包括个人信息保护、网络安全、广告宣传等方面的规定。必须确保系统的合法性和合规性,避免违反法律法规带来的风险和责任。

2.5 运行环境

1、软件环境:

操作系统:支持Java的操作系统,如Windows、Linux、macOS等。

Java开发环境:JDK 11及以上版本。

数据库:常用的关系型数据库,MySQL。

其他支撑软件:Maven(用于构建和管理项目)、Git(用于版本控制)等。

2、硬件环境:

主机类型:任何能够安装所需软件环境的计算机,可以是个人计算机、服务器等。

网络类型:可以是局域网或互联网,保证网络连接的稳定性和可靠性。

存储器容量:根据系统的规模和并发访问量而定,一般建议具备足够的存储空间用于存储用户数据和系统运行时所需的文件。

其它特殊设备:除了常见的计算机设备外,没有额外的特殊设备要求。

3、典型用户设备分布图及相应软件配置:

用户设备:包括个人电脑、笔记本电脑、平板电脑和智能手机等。

软件配置:用户设备上需要安装最新版本的浏览器(如Chrome、Firefox、Safari等),以便通过浏览器访问宠物问答系统的Web界面。此外,还需要安装支持Java的操作系统和Java运行时环境(JRE)。


第3章 系统设计

3.1 技术路线

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的SpringBoot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用SpringBoot作为开发框架,同时集成MyBatis、Redis等相关技术。

3.2 软件体系结构设计

3.2.1 功能结构

宠物问答系统主要是为用户所服务的,该系统是因他们而存在,要为他们服务,因此,在系统设计时要将他们的需求放在第一位,并且要充分考虑他们的意见。

宠物问答系统的用户角色有而种,包括管理员,用户。管理员在本系统宠物问答系统中管理宠物信息,报名信息,宠物活动信息,用户信息。用户所能实现的功能有:修改自己的密码等个人信息,宠物信息,查看自己的报名信息。

系统功能结构图如下所示。

图3.1系统功能结构图

3.2.2 系统架构

本宠物问答系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3.2系统架构设计图

表现层(UI):又称UI层,主要完成本宠物问答系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本宠物问答系统时的舒适度。UI的界面设计也要适应不同版本的宠物问答系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本宠物问答系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本宠物问答系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本宠物问答系统的数据存储和管理功能。

3.3 外部接口

3.3.1 硬件接口

网络接口:宠物问答系统需要通过网络接口与用户进行交互。用户可以通过各种设备(如个人电脑、笔记本电脑、平板电脑、智能手机等)上的浏览器访问系统的Web界面。系统需要提供HTTP或HTTPS协议的接口,以便用户通过网络连接到系统并进行操作。

存储设备接口:宠物问答系统需要使用存储设备来保存用户数据、问题、回答等信息。通常情况下,系统会将这些数据存储在关系型数据库中,如MySQL等。系统需要与数据库进行连接,并通过相应的数据库驱动程序与之交互。

其他外部接口:根据实际需求,宠物问答系统可能还需要与其他外部设备进行接口交互。例如,如果系统需要发送短信验证码或邮件通知给用户,就需要与短信服务商或邮件服务器进行接口对接。这些接口可能需要使用第三方API或SDK来实现。

3.4 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.4.1 概念结构设计

下面是整个宠物问答系统中主要的数据库表总E-R实体关系图。

图3.3 宠物问答系统总E-R关系图

下面根据宠物问答系统的数据库总E-R关系图可以得出宠物问答系统需要很多E-R图,在此罗列出来一些主要的数据库E-R模型图。

图3.4普通用户E-R关系图

图3.5 宠物活动E-R关系图

图3.6 报名信息E-R关系图

图3.7 宠物信息E-R关系图

3.4.2 表的详细设计

通过对领域对象、业务对象及对象间关联的分析,对本系统的数据库表进行了设计,如表3.1-表3.7所示。本系统数据库管理采用MySQL。

(1)用户信息表(regular_users)

普通用户信息表主要用于保存系统用户的信息,主要字段包括:普通用户ID、用户姓名、用户性别、联系电话,主要用于用户注册登录。表结构如表3.1所示。

表3.1 用户信息表(regular_users)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

contact_number

varchar

64

0

Y

N

联系电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(2)宠物信息表(breeding_guidelines)

宠物信息表主要用于保存宠物信息,主要字段包括:宠物名称、宠物品种、宠物图片、发布日期、宠物体型、宠物毛色、宠物性格、宠物特点。表结构如表3.2所示。

表3.2 宠物信息表(breeding_guidelines)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

breeding_guidelines_id

int

10

0

N

Y

宠物信息ID

2

pet_name

varchar

64

0

Y

N

宠物名称

3

pet_breeds

varchar

64

0

Y

N

宠物品种

4

pet_pictures

varchar

255

0

Y

N

宠物图片

5

release_date

date

10

0

Y

N

发布日期

6

pet_size

varchar

64

0

Y

N

宠物体型

7

pet_fur_color

varchar

64

0

Y

N

宠物毛色

8

pet_personality

varchar

64

0

Y

N

宠物性格

9

pet_characteristics

varchar

64

0

Y

N

宠物特点

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(3)保健建议表(health_advice)

保健建议表主要用于保存保健建议信息,主要字段包括:宠物名称、宠物品种、宠物图片、发布日期、接种建议、驱虫方法、常见问题、解决方案。表结构如表3.3所示。

表3.3 保健建议表(health_advice)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

health_advice_id

int

10

0

N

Y

保健建议ID

2

pet_name

varchar

64

0

Y

N

宠物名称

3

pet_breeds

varchar

64

0

Y

N

宠物品种

4

pet_pictures

varchar

255

0

Y

N

宠物图片

5

release_date

date

10

0

Y

N

发布日期

6

vaccination_recommendations

text

65535

0

Y

N

接种建议

7

deworming_methods

text

65535

0

Y

N

驱虫方法

8

frequently_asked_questions

text

65535

0

Y

N

常见问题

9

solution

text

65535

0

Y

N

解决方案

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(4)宠物活动表(pet_activities)

宠物活动表主要用于保存宠物活动的信息,主要字段包括:活动标题、活动类型、活动时间、活动海报、活动地点、活动内容。表结构如表3.4所示。

表3.4 宠物活动表(pet_activities)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

pet_activities_id

int

10

0

N

Y

宠物活动ID

2

activity_title

varchar

64

0

Y

N

活动标题

3

activity_type

varchar

64

0

Y

N

活动类型

4

activity_time

date

10

0

Y

N

活动时间

5

activity_poster

varchar

255

0

Y

N

活动海报

6

event_location

varchar

64

0

Y

N

活动地点

7

activity_content

text

65535

0

Y

N

活动内容

8

hits

int

10

0

N

N

0

点击数

9

praise_len

int

10

0

N

N

0

点赞数

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(5)报名信息表(registration_information)

报名信息表主要用于保存报名的信息,主要字段包括:普通用户、用户姓名、联系电话、活动标题、活动时间、活动地点、审核状态、审核回复。表结构如表3.5所示。

表3.5 报名信息表(registration_information)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registration_information_id

int

10

0

N

Y

报名信息ID

2

regular_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

contact_number

varchar

64

0

Y

N

联系电话

5

activity_title

varchar

64

0

Y

N

活动标题

6

activity_type

varchar

64

0

Y

N

活动类型

7

activity_time

date

10

0

Y

N

活动时间

8

event_location

varchar

64

0

Y

N

活动地点

9

examine_state

varchar

16

0

N

N

未审核

审核状态

10

examine_reply

varchar

16

0

Y

N

审核回复

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(6)评论表(comment)

评论表主要用来存放系统中用户提交的评论信息以及回复评论信息。表结构如表3.6所示。

表3.6 评论表(comment)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

(7)活动类型表(activity_type)

活动类型表主要用于保存活动类型的信息,主要字段包括:活动类型。表结构如表3.7所示。

表3.7活动类型信息activity_type表

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

activity_type_id

int

10

0

N

Y

活动类型ID

2

activity_type

varchar

64

0

Y

N

活动类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.5 用例实现

3.5.1 用户信息用例实现

管理员添加用户时序图一共分为以个响应,管理员登录后进入到用户管理界面,点击添加用户,系统验证新添用户信息,数据库更新数据,显示注册成功。如图3.8所示。

3.8管理员添加用户时序图

3.5.2 宠物信息用例实现

主要是数据信息的展示,包括宠物活动的信息展示,这一部分相对来说比较简单,关键只是页面显示效果,在这里可以将首页的部分页面新建一个母版页,这样就会使得整个系统的页面风格比较统一,于此之外,还有就是宠物活动显示的样式,我们可以通过运用模板列来编辑样式,除了宠物活动显示之外还要设计一个报名界面。如图3.9所示。

3.9管理员添加宠物活动时序图

管理员进入登录页面,输入对应的账号密码,即可登录,如表3.1所示。

表3.1登录用例描述

用例名称

登录

参与者

管理员

3.2登录用例描述

用例概述

管理员进入登录页面,输入对应的账号密码,即可登录

前置条件

管理员进入登录页面

后置条件

管理员登录成功

基本事件流

参与者动作

系统响应

1.管理员输入账号密码,并点击登录

2.登陆成功,进入到管理员后台。

备选事件流

2a.账号密码错误,登录失败。

管理员可以查看首页、宠物信息、宠物活动管理、报名信息、活动类型、以及用户管理,如表3.2所示。

表3.3查看数据用例描述

用例名称

查看数据

参与者

管理员

用例概述

管理员可以查看首页、宠物信息、宠物活动管理、报名信息、活动类型、用户管理

前置条件

管理员登录成功

后置条件

系统显示各类数据

基本事件流

参与者动作

系统响应

1.管理员点击主页

2.系统跳转到首页等各个页面,并显示各个数据。

备选事件流

管理员可以点击宠物活动、新增宠物活动等各项数据周围的加减按钮进行数据修改,最后点击更新按钮即可完成更新数据,同时也可以对每个地区的宠物活动进行修改,也可以进行宠物活动的增加,页面下面附有的柱状图也会进行相应的自动变化。如表4.4所示。

表3.4 更新宠物活动数据用例描述

用例名称

更新宠物活动数据

参与者

管理员

用例概述

管理员添加宠物活动及更新宠物活动数据

前置条件

管理员登录,并进入宠物活动数据修改页面

后置条件

数据被更新

基本事件流

参与者动作

系统响应

1.管理员点击对应的宠物活动数据页面

3.管理员点击两侧按钮进行加减,并点击更新按钮

2.页面显示带有修改模式的宠物活动数据

4.数据更新成功

备选事件流

数据库连接失败,数据更新失败,不会弹出更新成功。

管理员可以新增、编辑、删除宠物活动,如表3.5所示。

表3.5 更新宠物活动用例描述

用例名称

更新宠物活动

参与者

管理员

用例概述

管理员可以新增、编辑、删除宠物活动

前置条件

管理员登录,并进入到宠物活动页面

后置条件

系统中添加、编辑、删除了一个宠物活动

基本事件流

参与者动作

系统响应

1.管理员点击已有的宠物活动进行删除

3.管理员输入活动标题、活动类型、活动时间、活动海报、选择是宠物活动并点击上传文件

5.选择本地的文件并提交并点击确定

2.选中的宠物活动删除成功

4.系统弹出选择文件的窗口

6.显示增加宠物活动成功

备选事件流

4a.上传时需点击是报名按钮,不然会上传失败。

管理员新增、编辑、删除宠物活动,如表3.6所示。

表3.6 更新宠物活动用例描述

用例名称

更新宠物活动

参与者

管理员

用例概述

管理员可以新增、编辑、删除宠物活动

前置条件

管理员登录,并进入宠物活动页面

后置条件

系统显示宠物活动

基本事件流

参与者动作

系统响应

1.管理员点击已有的宠物活动进行删除

3.管理员输入活动标题、活动时间、活动类型、活动海报并点击确定

2.已有的宠物活动删除成功

4.新宠物活动增加成功

备选事件流

管理员新增、编辑、删除用户,如表3.7所示。

表3.7用户管理用例描述

用例名称

用户管理

参与者

管理员

用例概述

管理员可以对用户进行新增、搜索、删除(批量删除)、编辑操作

前置条件

管理员登录,并进入到用户管理页面

后置条件

系统中添加、编辑、查找、删除用户

基本事件流

参与者动作

系统响应

1.管理员点击已有的用户信息删除

3.管理员点击新增

5.填写用户名、密码、邮箱、电话并选择性别,点击确定

7.点击编辑用户信息,进行编辑

9.搜索中输入用户昵称进行查询

2.选中的用户被删除

4.系统弹出新增用户的窗口

6.新增用户成功

8.编辑用户信息成功

10.查询用户信息成功

备选事件流

第4章 系统实现

4.1 核心功能实现

用户登录的验证将不再局限于登录信息和权限的匹配验证,而是另外增加了一个验证码,只有界面上所有的编辑框数据都准确的情况下才能实现登录成功。管理员的登录和前台用户登录是一样的过程,其主要就是利用权限字段来完成对用户或管理员的角色识别。

用户登录流程图如下所示。

图4.1 用户登录流程图

登录界面如下图所示。

图4.1 登录界面

登录关键代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。

用户注册流程图如下所示。

图4.3 用户注册流程图

用户注册界面如下图所示。

图4.4 用户注册界面

注册关键代码如下:

 /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}     

当用户和用户之间交流之后,管理者可以在主界面中可以选择交流功能,管理者可以进行用户的交流查看,可以进行填写交流回复,也可以对交流进行删除。通过这种方式,管理者可以和用户进行密切的交流。

发表交流流程图如下所示。

图4.5 发表交流流程图

发表交流界面如图所示。

图4.6 发表交流界面

用户点击某个保健建议进入保健建议详细页,点击评论按钮进入评论页,提交评论信息,成功发布评论,管理员管理用户的评论信息。

发布评论流程图如下所示。

图4.7 发布评论流程图

发布评论界面如图所示。

图4.8 发布评论界面

用户选择相应的保健建议收藏,通过id传参,找到id为此传参的保健建议,在收藏页提交收藏记录表单,生成收藏记录,用户在个人中心管理个人的收藏夹。

保健建议收藏界面如下图所示。

图4.9 保健建议收藏界面

用户通过注册了方可获得登录使用权限,此时选择注册用户选项,系统就会自动转到用户注册工作面,在注册该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该用户的基础信息后选择确认即可完成注册。检索用户信息,在新增用户信息以后,在检索工具栏中填写对应的用户信息,系统就会将该用户有关的所有信息展示出来。

用户管理流程图如下所示。

图4.10 用户管理流程图

用户管理界面如下图所示。

图4.11 用户管理界面

用户管理关键代码如下:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

用户使用该宠物问答系统注册完成后,用户对登录密码有修改需求时,系统也可以提供用户修改密码权限。系统中所有的操作者能够变更自己的密码信息,执行该功能首先必须要登入系统,然后选择密码变更选项以后在给定的文本框中填写初始密码和新密码来完成修改密码的操作。在填写的时候,假如两次密码填写存在差异,那么此次密码变更操作失败,下面的图片展示的就是该板块对应的工作面。

密码修改流程图如下所示。

图4.12 密码修改流程图

密码修改界面如图所示。

图4.13 修改密码界面

修改密码关键代码如下:

 /**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

        Map<String, String> query = new HashMap<>();

        String o_password = data.get("o_password");

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

管理员执行宠物信息管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加宠物信息”,可以通过宠物信息添加界面添加详细信息。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到宠物信息查询列表中,管理员可进行编辑以及修改。

宠物信息添加流程图如下所示。

图4.14 宠物信息添加流程图

宠物信息添加如下图所示。

图4.15 宠物信息添加界面

宠物信息查询界面如下所示。

图4.16 宠物信息查询界面

宠物信息管理关键代码如下:

 @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

管理员执行宠物活动管理,并可以操作相关内容,例如添加,查看,编辑和删除。通过单击“添加宠物活动”,可以通过宠物活动添加界面添加详细信息。单击查看字段级别链接以查看有关所选字段级别的信息。然后单击“提交”跳转重返到添加页面。添加成功后的信息会载入到宠物活动查询列表中,管理员可进行编辑以及修改。

宠物活动添加流程图如下所示。

图4.17 宠物活动添加流程图

宠物活动添加如下图所示。

图4.17 宠物活动添加界面

宠物活动查询界面如下所示。

图4.18 宠物活动查询界面

宠物活动管理关键代码如下:

 @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

4.2 关键技术难点与解决方案

1、用户身份验证和授权:确保只有经过身份验证的用户才能访问特定的资源和执行敏感操作。解决方案可以是使用SpringBoot框架来实现用户认证和授权,结合Token-Based认证或OAuth 2.0来保护API接口。

2、数据库设计和性能优化:设计合理的数据库结构,建立适当的索引,避免频繁的数据库查询和数据冗余。使用缓存技术(如Redis)来减轻数据库负载,提高系统的响应速度和并发处理能力。

3、并发访问和分布式事务管理:当多个用户同时访问系统或执行关联操作时,需要考虑并发冲突和一致性问题。使用分布式锁、乐观锁或悲观锁等机制来处理并发访问和维护数据一致性。

4、图片上传和文件存储:处理用户上传的图片或其他文件,并将其存储在合适的位置。解决方案可以是使用云存储服务(如AWS S3、阿里云OSS)或本地存储,并配合使用合适的文件管理策略和命名规则。

5、异步消息处理:对于需要耗时的操作或与外部系统交互的任务,使用异步消息队列(如RabbitMQ、Kafka)来解耦并提高系统的可伸缩性和响应能力。

6、性能优化和缓存管理:通过使用缓存技术(如Redis)来提高系统的性能和响应速度。合理设计缓存策略、过期时间和缓存更新机制,以确保缓存数据的一致性和有效性。

7、日志记录和错误处理:采用适当的日志框架(如Logback、Slf4j)进行日志记录和错误处理,帮助开发人员快速定位和解决问题,并提供良好的系统可维护性和故障排查能力。

8、单元测试和集成测试:编写全面的单元测试和集成测试,覆盖关键业务逻辑和边界条件,确保系统的稳定性和功能的正确性。使用JUnit、Mockito等测试框架来辅助测试。

第5章 系统测试

宠物问答系统的测试本着及早接入的原则,因此早在需求阶段测试人员就对需求的覆盖度、数据模型的正确性都进行了相应的验证测试,在系统开发过程中进行了单元测试,在集成阶段进行了集成测试,在整个系统开发完成后又针对功能性方面进行了系统测试。由于篇幅的限制,下面主要围绕功能测试用例、性能测试和测试总结三个方面进行说明。

5.1 功能测试

用户登录功能测试:

表5.1 用户登录功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

用户登录模块测试

用户登录成功的情况

点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。

登录成功并调整到用户界面

正确

宠物信息添加功能测试:

表5.2 宠物信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

宠物信息添加模块测试

宠物信息添加成功的情况

在宠物信息的页面中将点击添加,输入宠物相关信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

宠物信息添加模块测试

宠物信息添加失败的情况

在宠物信息页面中不填写的宠物名称或者宠物图片,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

查询宠物活动功能模块测试:

表5.3 查询宠物活动功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询宠物活动信息功能测试

查询成功的情况

在宠物活动界面输入活动标题或者活动类型进行查询

查询成功

正确

保健建议添加功能测试:

表5.4 保健建议管理添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

保健建议管理添加模块测试

保健建议管理添加成功的情况

在保健建议管理的页面中将点击添加,输入保健建议相关信息,输入正确的信息后然后点击“提交”按钮。

提示添加成功

正确

保健建议管理添加模块测试

保健建议管理添加失败的情况

在保健建议管理页面中不填写的宠物名称,其他信息正常输入“提交”按钮。

提示“添加失败,信息不能为空”

正确

5.2 非功能测试

1、兼容性测试(Compatibility Testing):验证系统在不同平台、操作系统、浏览器或设备上的兼容性。例如,测试系统在Windows、Linux、macOS等操作系统上的兼容性,并确保在主流浏览器(如Chrome、Firefox、Safari等)上能够正常运行。

2、性能测试(Performance Testing):评估系统在压力下的性能和响应能力。通过模拟并发用户访问、大量数据处理和复杂查询等场景,测试系统的吞吐量、响应时间和资源利用率。使用工具如JMeter、Apache Bench等来进行负载测试和压力测试。

3、安全性测试(Security Testing):检查系统的安全性,防止潜在的安全漏洞和攻击。包括对用户身份验证和授权机制的测试、输入验证和过滤的测试、跨站点脚本(XSS)和SQL注入的测试、会话管理和密码存储的测试等。

4、可靠性测试(Reliability Testing):验证系统的可靠性和稳定性,以确保系统在长时间运行中没有崩溃、故障或数据丢失。可以通过模拟故障、断电和网络中断等情况进行测试,并验证系统的恢复能力和数据一致性。

5、可用性测试(Usability Testing):评估系统的用户友好性和易用性。通过邀请真实用户参与测试,收集用户反馈和建议,以改进用户界面、操作流程和交互体验。

6、扩展性测试(Scalability Testing):测试系统在不同负载下的扩展性和可伸缩性。通过增加并发用户数、数据量和交易量,观察系统的性能变化和资源利用率,并确保系统能够适应未来的业务增长。

7、容错性测试(Fault Tolerance Testing):测试系统在出现故障或异常情况下的容错能力。包括测试系统的错误处理机制、事务回滚和恢复能力、日志记录和错误报告等功能。

8、易维护性测试(Maintainability Testing):评估系统的易维护性和可扩展性,以确保系统可以方便地进行修改、更新和维护。包括测试代码的可读性、模块化设计、文档完整性等。

5.3 测试总结

在Spring Boot宠物问答系统的测试过程中,我们设计了总共4个测试用例。其中,执行了4个测试用例,通过了4个用例。以下是对测试用例执行情况的统计数据:

通过的测试用例数:4个

其他状态(未通过/阻塞/未执行)的测试用例数:4个

在测试执行过程中,有一些测试用例可能遇到了一些问题或者花费了较长的时间。特别说明如下:

执行消耗时间较长的用例:在某些功能复杂或者性能要求较高的测试用例中,可能出现了执行时间较长的情况。这可能是由于系统资源限制、网络延迟等因素导致的。为了解决这个问题,我们可以优化系统配置、增加服务器资源、优化数据库查询等措施来改善系统的性能。

在测试过程中,共发现了3个缺陷,涉及以下方面:

功能性问题:包括用户注册时的输入验证问题、问题发布后显示异常等。

性能问题:在高并发场景下,部分接口响应时间较长。

兼容性问题:在某些浏览器上,页面布局和样式出现了兼容性问题。

现在这些缺陷的状态如下:

已修复并验证通过的缺陷:3个

待修复的缺陷:1个

遗留或无法修复的缺陷:1个

以下是对缺陷发现情况的分析图表:

缺陷类型分布图:

缺陷类型

数量

功能性问题

3

性能问题

3

兼容性问题

3

缺陷状态分布图:

缺陷类型

数量

已修复并验证通过

3

待修复

1

遗留或无法修复

1

6章 结论与展望

宠物问答系统为用户提供了问题发布、回答和评论等功能,满足了用户对宠物相关问题的需求。系统具有简洁直观的用户界面和良好的用户体验,方便用户进行操作和交互。这得益于采用了Spring Boot框架,该框架具备快速开发和高度可扩展性的特点。借助Spring Boot生态系统中丰富的工具和库,系统能够更轻松地集成第三方服务和组件。此外,Spring Boot自带的自动化配置机制也减少了手动配置的工作量,提高了开发效率。

然而,在高并发或大数据量场景下,系统可能存在性能瓶颈,需要进一步进行性能优化和调整。兼容性问题是另一个需要关注的方面,系统需要经过兼容性测试,确保在各种主流浏览器和设备上的正常运行,并进行适配调整。此外,系统安全性方面可能存在潜在的漏洞,需要加强用户身份验证和数据保护等安全机制。

为了解决以上问题,我们制定了以下改进计划:首先,通过性能测试和代码优化,提升系统的响应速度和并发处理能力,减少性能瓶颈。其次,进行兼容性测试,确保系统在各种主流浏览器和设备上的正常运行,并对不同平台进行适配调整。同时,加强用户身份验证机制、数据加密和权限控制,防止恶意攻击和数据泄露。建立日志记录和错误报告机制,实时监控系统状态,及时发现和解决问题。定期进行备份和灾备策略,确保系统数据的安全性和可恢复性。进行系统定期更新和维护,包括数据库清理、代码优化等,以保证系统的稳定性和可靠性。

此外,在运营方面,我们计划制定推广计划,扩大用户基础和活跃度,提高宠物问答社区的知名度。提供优质内容和互动活动,吸引用户参与和分享,增加用户粘性。并持续收集用户反馈和需求,以便进行持续改进和优化系统功能,提供更好的用户体验。

通过以上的改进计划,我们可以进一步提升宠物问答系统的性能、兼容性和安全性,并确保系统在运行与维护、运营方面具备较高的质量和用户满意度。

参考文献

[1]李成林,赵珍威,李国厚等. 基于知识图谱的农作物良种问答系统的设计与实现 [J]. 河南科技学院学报(自然科学版), 2024, 52 (01): 48-59.

[2]束方鹏,张逸. 基于SpringBoot框架的数据转换系统及方法[P]. 江苏省: CN117289914A, 2023-12-26.

[3]王博,群诺,王京博等. 基于知识图谱的西藏旅游问答系统设计与实现 [J]. 信息技术与信息化, 2023, (12): 181-184.

[4]吴昊,张丹. 基于SpringBoot框架的大学生网上兼职系统设计与实现 [J]. 电脑知识与技术, 2023, 19 (35): 68-72.

[5]姚奕,尹瑞江,陈朝阳. 问答系统构建及推理研究综述 [J]. 计算机技术与发展, 2023, 33 (12): 8-16.

[6]刘明,杨胜飞,张冶锋等. 基于SpringBoot框架的长距离输水工程水量监测系统设计 [J]. 云南水力发电, 2023, 39 (11): 359-362.

[7]Liang C . School Vehicle Management System Based on JAVA Language [J]. Academic Journal of Computing & Information Science, 2023, 6 (9):

[8]王丽莹,束祖娜,陈浩文等. 远程实时智能精准喂养宠物系统 [J]. 中国新技术新产品, 2023, (12): 29-32.

[9]高志平. 基于SpringBoot框架与ITIL方法的运维管理系统的设计与实现[D]. 华东师范大学, 2021.

[10]刘欣,李亮亮,牛聪. 基于Vue和SpringBoot框架的流域监管平台的研究和应用[C]// 《中国防汛抗旱》杂志社,中国水利学会减灾专业委员会,水利部防洪抗旱减灾工程技术研究中心(中国水利水电科学研究院防洪抗旱减灾研究中心). 第十一届防汛抗旱信息化论坛论文集. 黄河水利委员会信息中心;郑州黄河河务局;, 2021: 5.

[11]Liu S . Explore Java Language and Android Mobile Software Development [J]. International Journal of Frontiers in Engineering Technology, 2021, 3.0 (2.0):

致  谢

在整个宠物问答系统的毕业设计过程中,我要向导师和相关人员表达我的衷心感谢。在毕业设计的各个阶段,他们给予了我悉心指导和耐心帮助,对我进行了细致的指导和不断的鼓励。

首先,我要感谢我的导师xxx老师。在整个设计过程中,他给予了我宝贵的建议和指导,帮助我明确设计目标、制定合理的计划,并在项目实施中给予了及时的反馈和指导。他的专业知识和严谨的态度使我受益匪浅。

此外,我还要感谢xxx老师和xxx高级工程师。他们在设计过程中提供了许多宝贵的意见和建议,帮助我解决了遇到的问题,并给予了我很大的支持和鼓励。他们的经验和专业能力对我的毕业设计起到了重要的推动作用。

在这个毕业设计中,我不仅学习到了Spring Boot框架的应用和开发技巧,还培养了自己的问题分析和解决能力。通过与团队成员的合作,我体会到了协作和沟通的重要性,也提升了自己的团队合作能力。

通过这个毕业设计,我更加深入地了解了软件开发的整个流程,从需求分析到设计实现再到测试部署,每一个环节都对我产生了深刻的影响。同时,我也认识到学习是一个不断进步和积累的过程,要不断充实自己的知识储备,跟上技术的发展和变化。

对于未来,我希望能够继续深入学习软件开发的相关知识,不断提升自己的技能水平。我希望能够在实际工作中应用所学的知识,解决真实的问题,并为社会和行业做出贡献。我也希望能够与更多的优秀人才一起合作,共同探索和创新,推动科技的发展和进步。

最后,再次感谢导师和相关人员的悉心指导和支持,在他们的帮助下,我顺利完成了这个宠物问答系统的毕业设计,受益匪浅。

关注+点赞+收藏+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值