【SpringBoot实战】Controller层-请求类与异常类的封装

【请求类】

服务端为了更好区分响应的状态,需要自定义错误码与错误信息。而且,直接返回data会使响应格式紊乱,前端不好处理。所以需要将http响应封装为“errCode+errMsg+data”的格式。

1. 自定义Resp类:@Data 注解是lombok插件提供的一个注解,可让我们省略getter与setter方法,提供代码简洁度。


2. 在RespUtil类中自定义

 Resp<T> successResp(T data)

Resp errorResp(Integer errCode, String errMsg)

方法自动封装resp响应。

3. 为了更好统一管理错误码与错误信息,将错误码与错误信息固定对应,在constant包下的Status类中定义enum类型的错误码。



【异常类】

java自带的异常类RuntimeException只包含errMsg字段,缺少我们自定义响应格式的errCode字段,所以需要自定义一个异常类,将errCode字段封装进去。

1. 继承RuntimeException类,自定义一个接口异常类。


2. @ControllerAdvice 注解定义全局异常处理类。

3. 此类中包含 @ExceptionHandler 注解的方法,负责处理所有 Controller 层抛出的 Exception 及其子类的异常。在此方法中将自定义异常类包含的errCode与errMsg利用RespUtil.errorResp()装入响应中。

4. 此外@Slf4j 注解可以让我们省略LoggerFactory.getLogger()方法


5.当controller层需要抛出异常时,使用异常类构造方法,传入定义好的常数状态码抛出new出来的异常。

throw new BlogException(Status.ApiErr.PERMISSION_DENIED);

猜你喜欢

转载自blog.csdn.net/u012372720/article/details/80930151