springboot 统一返回处理
时间: 2023-09-22 20:11:34 浏览: 69
在 Spring Boot 中,我们可以使用统一的返回处理来规范 API 接口的返回格式,避免重复的代码和降低维护成本。
一般来说,我们可以定义一个 Result 类来封装接口返回的数据,包括状态码、提示信息和返回数据等。同时,我们还可以定义一个异常处理类来捕获全局的异常,并将异常信息封装到 Result 类中返回给前端。
以下是一个示例代码:
```java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
private Integer code;
private String msg;
private T data;
public static <T> Result<T> success(T data) {
return new Result<>(200, "success", data);
}
public static Result<?> error(Integer code, String msg) {
return new Result<>(code, msg, null);
}
}
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public Result<?> handleException(Exception e) {
log.error("未知异常:{}", e.getMessage());
return Result.error(500, "服务器内部错误");
}
@ExceptionHandler(value = BusinessException.class)
public Result<?> handleBusinessException(BusinessException e) {
log.error("业务异常:{}", e.getMessage());
return Result.error(e.getCode(), e.getMessage());
}
}
```
在上面的代码中,我们定义了一个 Result 类来封装接口返回的数据。其中,success 方法表示成功时返回的结果,error 方法表示失败时返回的结果。
同时,我们还定义了一个全局异常处理器 GlobalExceptionHandler,用来捕获全局的异常。在 handleException 和 handleBusinessException 方法中,我们分别处理了未知异常和业务异常,并将异常信息封装到 Result 类中返回给前端。
通过使用统一的返回处理,我们可以大大简化接口返回的代码,提高代码的可维护性和可读性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)