图书项目下
2026/8/20 13:18:30 网站建设 项目流程

一、实验目的及要求

1.实验目的

(1)掌握 SpringBoot 项目进阶开发能力。

(2)学会使用 MyBatis-Plus 条件构造器与分页插件。

(3)理解并实现 统一异常处理机制(@ControllerAdvice)。

(4)掌握 登录认证(JWT)基本原理与实现。

(5)提升系统的 实用性与安全性。

(6)理解简单的 权限控制思想(RBAC 初步)。

2.实验要求

功能扩展,在实验一基础上,新增以下功能:

(1)分页与条件查询

实现图书分页查询

支持条件筛选(如书名模糊查询、作者查询)

(2)统一异常处理

使用 @ControllerAdvice 实现全局异常处理

返回统一错误信息格式

(3)统一结果封装

定义统一返回结构(code / message / data)

(4)用户登录功能(JWT)

实现简单用户表(user)

登录接口(用户名 + 密码)

登录成功返回 Token(JWT)

后续接口需携带 Token 才能访问

(5)权限控制(基础)

区分普通用户与管理员(可简化为字段)

只有管理员可以删除图书

二、实验使用的主要设备(含软件系统)及要求

主要实验仪器及设备:计算机+网络,spring boot+mybatis-plus,mysql。

三、实验操作过程及内容

数据表:

用户实体类:

用户Mapper:

用户服务接口:

用户服务实现:

登录控制器:

JWT工具类:

JWT拦截器:

全局异常处理器:

业务异常类:

登录请求DTO:

登录响应DTO:

分页查询请求DTO:

Web配置:

MyBatis-Plus配置:

四、实验结论、问题与建议(含取得的成果)

1、实验结论

本次实验在图书项目上的基础上,成功完成 Spring Boot 进阶功能开发,实现了 MyBatis-Plus 分页与条件查询、全局统一异常处理、JWT 登录认证、基础 RBAC 权限控制,系统安全性、规范性与实用性显著提升,所有进阶功能均正常运行,达到实验全部要求。

2、取得的成果

熟练使用MyBatis-Plus 条件构造器,实现书名、作者、价格、库存等多维度模糊与范围查询。

完成分页插件配置,实现图书分页查询,支持自定义页码与页大小。

通过@ControllerAdvice实现全局统一异常处理,自定义业务异常,返回规范 JSON 错误信息。

完成JWT 登录认证全流程:用户表设计、登录接口、Token 生成、拦截器校验、请求头传递。

实现基础权限控制,区分管理员与普通用户,仅管理员可执行删除操作。

统一接口返回格式,代码分层更清晰,项目结构符合企业开发规范。

完成接口测试,认证、授权、分页、异常捕获均正常生效。

3、实验中遇到的问题

JWT 拦截器配置错误,登录接口被拦截,无法正常访问。

MyBatis-Plus 分页插件未注册,分页查询不生效,返回全量数据。

JWT 密钥、过期时间设置不规范,出现Token 解析失败。

权限判断逻辑不完善,普通用户仍可调用删除接口。

部分异常未被全局处理器捕获,返回原生错误页面。

DTO 命名与字段不统一,导致参数接收异常。

4、改进建议

拦截器配置:精确设置excludePathPatterns,确保登录、注册等接口放行。

分页配置:必须注册MybatisPlusInterceptor并添加分页插件,否则分页失效。

JWT 优化:使用安全密钥、合理设置过期时间,增加 Token 校验方法。

权限完善:在 Controller 层增加角色判断,结合拦截器实现细粒度权限控制。

异常处理:覆盖常见异常类型,统一错误码与提示信息,提升用户体验。

代码规范:统一 DTO、实体、配置类命名,增加注释,便于维护。

扩展方向:可添加密码加密、接口限流、日志切面、多角色权限管理等功能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询