基于spring 的统一异常处理

将业务执行过程中会产生的各种异常,对其进行统一处理是所有web项目的通用需求spring 作为最流行的web框架,自然是提供了解决方案。

spring 的统一异常处理

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解来增强我们 controller 层的。

在标注了 @ControllerAdvice、@RestControllerAdvice 注解的类中,配合使用以下注解可以实现不同的功能

  • @ExceptionHandler : 全局异常处理
  • @InitBinder : 全局数据绑定
  • @ModelAttribute : 全局数据预处理

对于全局异常处理,具体来说就是,通过创建 @ControllerAdvice 类,并自定义一个 @ExceptionHandler 方法,来统一处理。

实例

这里提供一种常见的设计,供大家参考。

主要分为以下几个部分

  • 自定义全局状态码
  • 自定义异常类
  • 自定义业务结果类
  • 自定义统一异常处理类
  • 使用自定义的异常

自定义全局状态码

每一个业务状态都对于一个状态码

基于spring 的统一异常处理

自定义异常类

每一种异常都对于一种ApplicationEnum

基于spring 的统一异常处理

自定义业务结果类

自定义业务结果类,来统一所有 controller 层的返回值

基于spring 的统一异常处理

为了方便使用,再创建一个 SuccessResult 和一个 FailResult

基于spring 的统一异常处理
基于spring 的统一异常处理

原文 

https://juejin.im/post/5dd5f7f8e51d4536a36a1d7d

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 基于spring 的统一异常处理

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址