【SpringBoot】通用返回结果类ResultVO

1. 定义通用返回结果类

​ 定义ResultVO类,作返回给前端的对象结构,主要有4个字段

  • code : 错误码
  • data : 内容
  • message : 消息
  • description : 具体描述
import lombok.Data;
import java.io.Serializable;

/**
 * 通用返回结果类
 * @param <T>
 */
@Data
public class ResultVO<T> implements Serializable {

    /**
     * 错误码
     */
    private int code;
    /**
     * 内容
     */
    private T data;
    /**
     * 消息
     */
    private String message;
    /**
     * 描述
     */
    private String description;

    public ResultVO(int code, T data, String message, String description) {
        this.code = code;
        this.data = data;
        this.message = message;
        this.description = description;
    }

    public ResultVO(int code, T data) {
        this(code,data,"","");
    }

    public ResultVO(int code, T data, String message) {
        this(code,data,message,"");
    }
    
}

2 工具类

/**
 * 通用返回响应工具类
 *
 * @author leovany
 * @date 2023/09/23
 */
public class ResultUtils {

    /**
     * 成功
     *
     * @param data 数据
     * @return {@link ResultVO}<{@link T}>
     */
    public static <T> ResultVO<T> success(T data) {
        return new ResultVO<T>(0, data, "success");
    }

    /**
     * 错误
     *
     * @param code        错误码
     * @param message     信息
     * @param description 描述
     * @return {@link ResultVO}
     */
    public static ResultVO error(int code, String message, String description) {
        return new ResultVO<>(code, null, message, description);
    }

}

3 使用

  • 返回值用 ResultVO<XXX>封装
  • 成功返回:ResultUtils.success(XX);
  • 失败失败:ResultUtils.error(code,message,description);
@PostMapping("/login")
public ResultVO<User> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
    String userAccount = userLoginRequest.getUserAccount();
    String userPassword = userLoginRequest.getUserPassword();
    // 参数校验
    if (StringUtils.isAnyBlank(userAccount, userPassword)) {
        return ResultUtils.error(40000,"参数错误","参数不能为空");
    }
    // 从数据库查找用户
    User user = userService.doLogin(userAccount, userPassword, request);
    return ResultUtils.success(user);
}

跟之前对比,代码更加优雅

image-20230923222714691

4 返回给前端效果图

返回给前端的响应结果

{
    "code": 0,
    "data": {
        "id": 10,
        "username": "admin"
    },
    "message": "success",
    "description": ""
}
  • 成功

image-20230923224002931

  • 失败

image-20230923223108281

总结

​ 通过封装ResultVO通用返回结果对象之后,保证了后端跟前端视图对象(VO)的统一。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值