欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > springBoot统一响应类型3.5.2版本

springBoot统一响应类型3.5.2版本

2025/4/17 15:46:27 来源:https://blog.csdn.net/c_yanxin_ru/article/details/146964184  浏览:    关键词:springBoot统一响应类型3.5.2版本
前言:

通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度。

简单回顾:

第一阶段:统一响应的简单应用

第二阶段:统一响应的起源

第三阶段:统一响应实体的起源

第四阶段:统一响应实体的面向对象优化

分别对应的是

全局响应和异常响应的简单运用

前后端分离,为了提高开发效率而诞生的概念

基于后端响应的底层逻辑运用

为减少代码重复,提高代码可读写而诞生的工具类

正片:第五阶段:全局异常统一响应

第一步:封装一个专门用于异常的实体类

@Data
@AllArgsConstructor
public class BusinessException extends RuntimeException{/***  异常状态码*/private int code;/***  异常信息*/private String message;/*** 无参构造函数*/public BusinessException(){}
}

继承RuntimeException完成异常实体的构建

第二步:实现全局异常

@Slf4j
/*** 专门用于构建Result Api服务时的全局异常处理。* 这个注解允许开发者在一个集中的地方处理所有控制器层抛出的异常,* 并且能够统一错误响应格式,从而提高系统的健壮性和用户体验。*/
@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Throwable.class)public ApiResult handleException(Throwable e){log.info("系统异常:" + e);return ApiResultUnit.error(500,"系统问题,请联系管理员");}
}

基础版全局异常

只有系统问题是不行滴

@Slf4j
/*** 专门用于构建Result Api服务时的全局异常处理。* 这个注解允许开发者在一个集中的地方处理所有控制器层抛出的异常,* 并且能够统一错误响应格式,从而提高系统的健壮性和用户体验。*/
@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Throwable.class)public ApiResult handleException(Throwable e){/***  当异常是自定义报错时*/if (e instanceof BusinessException){BusinessException businessException = new BusinessException();log.info("请求出现业务异常:", e);/*** 返回异常状态码、异常信息*/return ApiResultUnit.error(businessException.getCode(), businessException.getMessage());}log.info("系统异常:",e);return ApiResultUnit.error(500,"系统问题,请联系管理员");}
}

问题又来了,我们没有自定义业务异常,所以无效

用一大段代码减少重复性的判断

    @GetMapping("/findById")public ApiResult<UserEntity> findById(Long id) {UserEntity byId = userService.findById(id);if (byId != null) {return new ApiResult<>(200, "操作成功", byId);}return new ApiResult<>(430,"未查询用户",null);}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词