SpringBoot中定制统一结果返回

目录结构:
在这里插入图片描述
ResultCode:

public interface ResultCode {

    public static Integer SUCCESS = 20000;
    public static Integer ERROR = 20001;
}
//统一返回结果的类
@Data
public class R {

    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

    //把构造方法私有
    private R() {}

    //成功静态方法
    public static R ok() {
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    //失败静态方法
    public static R error() {
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;    //可以链式调用
    }

    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }

    public R message(String message){
        this.setMessage(message);
        return this;
    }

    public R code(Integer code){
        this.setCode(code);
        return this;
    }

    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

欢迎关注公众号Java技术大本营,会不定期分享BAT面试资料等福利。

在这里插入图片描述


Spring Boot 提供了一种方便的方式来统一处理应用程序中的异常,这主要通过全局异常处理机制实现。在 Spring Boot 3 中,你可以配置 `@ControllerAdvice` 或 `@ExceptionHandler` 注解的方法来捕获并处理各种类型的异常。以下是几个关键点: 1. **全局异常处理器 (`@ControllerAdvice`)**:创建一个单独的类,其中包含 `@ExceptionHandler` 注解的方法来处理来自 @RestController 的 HTTP 请求引发的特定类型异常。这些方法通常接收 `HttpServletResponse` 和 `Throwable` 参数。 ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) public ResponseEntity<?> handleAllErrors(Exception ex) { // 异常处理逻辑,如记录日志、返回错误响应等 return new ResponseEntity<>(new ErrorResponse(ex.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR); } } ``` 2. **异常映射 (`@MappingException`)**:如果你想要对特定异常类型进行定制化的处理,可以使用 `@MappingException` 注解将它映射到一个特定的处理器方法。 3. **自定义异常类 (`@ControllerAdvice` 或者 @ResponseBody)`**:定义自定义异常类,并在需要的地方抛出,然后在异常处理器中捕获并返回给客户端。 4. **嵌套异常处理器**:如果需要处理更深层次的异常,例如业务层异常,可以在异常处理器中继续捕获并适当地处理。 **相关问题--:** 1. Spring Boot 如何设置全局异常消息模板? 2. 如何处理Spring MVC的预定义HTTP状态码? 3. 怎么在Spring Boot中启用详尽的异常堆栈跟踪?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值