一、项目简介
1.功能描述:
本项目是一个基于JAVA+SpringBoot+Vue3技术构建的Web管理系统,提供了一个便捷的平台供管理员和教师管理实验室资源。该系统允许管理员对实验进行添加、删除和更新操作,管理用户账户,审核预约请求以及配置权限设置。同时,教师可以通过系统预约实验室资源。本项目设计注重用户体验,确保操作的简便性和系统的高效性。(Vue3框架的前端布局,代码参考了博客2)
2.参考git地址或博客地址:
·黑马程序员最新版JavaWeb综合案例(前后端完整版)_黑马程序员javaweb-CSDN博客
实验室管理系统 JAVA+Vue+SpringBoot+MySQL_:基于springboot+vue的高校实验室管理系统的设计与开发-CSDN博客
3.个人负责任务:
首先,设计数据库表结构,包括用户表、实验表、预约表等。然后,使用SpringBoot框架实现API接口和业务逻辑处理。其次,使用Vue3框架,(在次之前已经完成了大部分)采用Element组件库构建前端界面提供友好的用户体验。最后,对系统进行全面测试,确保功能的正确性和稳定性。
个人博客链接:期望得B的同学必须有
二、功能架构图
三、个人任务简述
1. 完成的任务与功能:
序号 | 完成功能与任务 | 描述 |
1 | 登录功能 | 使用JWT进行登录校验,提高系统的安全性。 |
2 | 数据库读写部分 | 采用DAO模式。使用MyBatis作为持久层框架,进行数据库操作和数据映射。 |
3 | 后端服务搭建 | 采用SpringBoot实现业务逻辑的处理并接收前端发送的请求,对请求进行处理并响应数据 |
4 | 前端页面构建 | 使用Vue3框架(整体布局代码参考了博客2),使用ElementUI组件库构建前端界面 |
5 | 设计数据库表结构 | 使用Mysql数据库创建包括用户表、实验表、预约表,权限表等。 |
2. Git提交记录截图:
四、本人负责功能详解
1.完成的任务与功能
1.1登录功能:使用JWT进行登录校验,提高系统的安全性。
(1)JWT令牌生成
(2)自定义Token拦截器
对请求进行拦截,检查请求的token是否符合要求。如果请求的URI包含"/login",则直接放行,不进行token验证。从请求头或请求参数中获取token。如果token为空,则返回401状态码和错误信息"token不能为空"。如果token不为空,尝试解析token,如果解析失败(抛出异常),则返回401状态码和错误信息"token无效"。如果token解析成功,则放行请求
(3)web拦截:使用 Spring框架中的配置类,配置Web应用程序的拦截器。通过实现`WebMvcConfigurer`接口,并重写`addInterceptors`方法。将自定义的`TokenInterceptor`拦截器添加到了拦截器注册表中,并指定拦截所有请求,从实现当有请求进入Web应用程序时,都经过这个拦截器进行处理。
1.2采用SpringBoot框架进行后端服务搭建
数据库读写部分采用DAO模式。使用MyBatis作为持久层框架,进行数据库操作和数据映射。
- Dao(持久层)负责数据访问操作,包括实验室的增删改查
本项目使用了MyBatis持久层框架:
(1-1)创建数据库表
(1-2)application.yml中引入数据库连接信息
(1-3)创建相应的实体类和Mapper接口,编写XML映射文件实现增删改查更新的功能(以实验室的预约模块为例展示)
(2)Service(业务逻辑层) (以实验室的预约模块为例展示)
处理具体的业务逻辑,同样采用接口的形式,通过获取Dao层的数据,对数据进行处理,然后再返回接下来给Controller调用
(3)Controller(控制层)(以实验室的预约模块为例展示)
接收前端发送的请求,对请求进行处理并响应数据
1.3 前端页面构建:使用Vue3框架,使用ElementUI组件库构建前端界面效果图如下(该部分的整体框架参照参考博客2)
五、课程设计感想
在完成这个实验室管理系统的过程中,我深刻体会到了JAVAWeb开发技术的强大与便捷。通过使用SpringBoot、Vue3、MyBatis以及JWT等技术,能够快速搭建起一个功能完善、界面美观、易于维护的系统。以下是我在项目开发过程中的一些感想、遇到的问题以及解决问题的思路和方法:
1. 权限控制:在实现权限控制时,本项目采用了JWT技术。一开始,只是简单的将权限信息存在本地在前端通过路由拦截进行的权限控制中,后来参照黑马程序员最新版JavaWeb综合案例(前后端完整版)_黑马程序员,替换了这一方案,JWT中存储用户ID,真正的权限控制交给后端处理,通过查询数据库来验证用户权限。
2.动态SQL的编写困难: MyBatis的强大之处在于它的动态SQL能力,但这也导致了编写复杂SQL时的困难,尤其是在构建条件查询时和处理一对多的映射关系。有时自己在处理多个条件组合和处理一对多的映射关系陷入了混乱。
通过进一步对MyBatis学习和参考最佳实践,逐渐掌握了使用MyBatis的动态SQL技巧。
3. 状态管理:随着项目的进行,发现前端的状态管理变得越来越复杂。为了解决这个问题,我们引入了Pinai来管理全局状态,使得各个组件之间可以共享状态,同时也便于追踪和调试。
六、展望
1. 自己所完成功能的不足之处及以后想要采取的改进方法。
·第一、可视化部分的数据存在一定的问题,之后计划通过进一步的学习javaweb和前端可视化部分实现对项目的完善。第二、实验室管理平台的功能比较单一。通过以后对SpringBoot框架的进一步学习进一步完善该项目的功能,比如实验室器材的保修等丰富项目的功能
2. 课设后想要进一步做的事情。
通过这次完成这次课设,将Javaweb,java等知识运用到实践中,进一步加深了对它们的理解和掌握但是也发现了一些问题,比如对知识掌握不熟练,尤其是JWT令牌技术部分,课设后计划进一步学习相关的知识,更加系统完善学习Javaweb的相关技术栈