所有分类
  • 所有分类
  • 未分类

JavaWeb-全局响应处理与全局异常处理

JavaWeb必须全局处理响应给外部的数据,分为两个部分:

  1. 全局处理响应
    • 后端正常响应时要全局性地自动封装公共响应类。
  2. 全局处理异常
    • 后端抛异常时也要全局性地自动封装公共响应类。

为什么进行全局响应处理?

在实际开发中,后端给前端的响应值必须要有一层封装,封装里边有状态码、错误信息、接口数据等。前端会先判断状态码,如果是成功,则获取数据;如果是失败,直接将错误信息提示给用户。这样做的好处是。

  1. 方便前后端交互
    • 有了这个公共的响应值,前后端交互会变得统一,这样会很便捷高效,会减少很多问题。
  2. 方便feign调用
    • 这个公共响应值也会作为feign的公共响应,便于调用方统一解析。

Java初级开发的写法

Controller所有方法都手动封装:ResultWrapper.success(data)。

Java中高级的写法

用AOP进行全局自动处理,Controller里不需要任何改动。

初级和高级写法的对比

封装响应值的操作,最优雅的做法是Java中高级的那种全局处理,因为这个公共响应体是个业务无关的东西。如果不全局处理,会有如下问题

  1. 代码繁琐
  2. 会有人会直接返回数据,不封装
    • 会有人直接将数据在不封装的情况下给前端,或提供给别人!导致项目不统一,难以维护
    • 如果有报错,无法将错误提示给调用方。因为没有封装的话,无法放到错误信息里!

上边这些问题会导致:项目问题很多、bug很多、无法维护

为什么要全局处理异常?

跟全局处理响应类似,后端抛异常时也要统一响应给前端。另外,全局处理异常还有如下优点:

  1. 减少代码量
    • 如果不全局处理异常,那么需要自己去try catch,然后自己封装公共响应类。
  2. 便于维护、便于添加更多功能
    • 添加全局异常处理后,可以在全局处理的地方做如下重要的处理:
    • 1.统一将日志上传到ES等,便于排查问题。
    • 2.可以监控指定的异常信息,进行统一处理,比如:将异常信息邮件通知管理员

实战

SpringBoot-全局响应处理 – 自学精灵

SpringBoot–全局异常处理 – 自学精灵

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录