【JavaEE进阶】图书管理系统 - 捌

发布于:2025-03-08 ⋅ 阅读:(103) ⋅ 点赞:(0)

目录

🍃前言

🎍统一数据返回格式

🚩快速入门

🚩存在问题

🚩统一格式返回的优点

🍀统一异常处理

🌲前端代码的修改

🚩登录页面

🚩图书列表

🚩删除图书

🚩批量删除图书

🚩添加图书

🚩获取图书详情

🚩修改图书


🍃前言

今天我们将对图书管理系统进行收尾工作,今天的开发任务有两个

  1. 实现统一数据返回格式
  2. 实现统一异常的处理

🎍统一数据返回格式

在前面文章讲到,通过拦截器实现了登录验证功能,但是对于数据的返回还没有处理

代码:

但是如果每一个接口都这样写,岂不太麻烦了一点儿。

其实spring boot为我们提供了统一数据格式返回的功能

🚩快速入门

统⼀的数据返回格式使⽤ @ControllerAdvice 和ResponseBodyAdvice 的⽅式实现@ControllerAdvice 表⽰控制器通知类

添加类 ResponseAdvice ,实现 ResponseBodyAdvice 接⼝,并在类上添加@ControllerAdvice 注解

  • supports方法:判断是否要执行beforeBodyWrite方法.true为执行,false不执行.通过该⽅法可以选择哪些类或哪些方法的response要进行处理,其他的不进行处理

  • beforeBodyWrite方法:对response方法进行具体操作处理

添加统⼀数据返回格式之前:

添加统⼀数据返回格式之后: 

🚩存在问题

问题现象:

我们继续测试登录的接⼝:

结果显⽰,发⽣内部错误

查看⽇志,⽇志报错

多测试⼏种不同的返回结果,发现只有返回结果为String类型时才有这种错误发⽣,这里不在演示

解决⽅案:

如果⼀些⽅法返回的结果已经是Result类型了,那就直接返回Result类型的结果即可

代码:

🚩统一格式返回的优点

  1. ⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据
  2. 降低前端程序员和后端程序员的沟通成本,按照某个格式实现就可以了,因为所有接⼝都是这样返回的.
  3. 有利于项⽬统⼀数据的维护和修改.
  4. 有利于后端技术部⻔的统⼀规范的标准制定,不会出现稀奇古怪的返回内容

🍀统一异常处理

当我们程序出现异常的时候,Spring会对我们进行异常相关的处理,当发生异常的时候,它会走到BasicErrorcontroller类中的 error方法。

我们可以自己来处理异常。

统⼀异常处理使⽤的是 @ControllerAdvice+@ExceptionHandler 来实现的

  • @ControllerAdvice 表⽰控制器通知类
  • @ExceptionHandler 是异常处理器

两个结合表示当出现异常的时候执行某个通知,也就是执行某个方法事件

简单使用如下:​​​​​​​​​​​​​​

也可通过@RestControllerAdvice注解

还可以设置捕获什么类型的异常,不写的话就以参数为准(上述的Exception)

还可以对异常进行细分:

🌲前端代码的修改

🚩登录页面

登录界⾯没有拦截,只是返回结果发⽣了变化,所以只需要根据返回结果修改对应代码即可

登录结果代码修改

🚩图书列表

针对图书列表⻚有两处变化

  1. 拦截器进行了强制登录校验,如果校验失败,则http状态码返回401,此时会⾛ajax的error逻辑处理
  2. 接⼝返回结果发生了变化

图书列表代码修改:

🚩删除图书

🚩批量删除图书

🚩添加图书

🚩获取图书详情

🚩修改图书


网站公告

今日签到

点亮在社区的每一天
去签到