java定义通用返回结果类ResultVO使用示例详解

java定义通用返回结果类ResultVO使用示例详解

定义通用返回结果类

  • 定义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,"");
          }
      }
      

    工具类

    • /**
       * 通用返回响应工具类
       *
       * @author leovany
       */
      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);
          }
      }
      

    使用

    • 返回值用 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);
      }
      
    • 跟之前对比,代码更加优雅

    • 2023092409393908.jpg

返回给前端效果图

  • 返回给前端的响应结果

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

  • img

  • 失败

  • img

总结

  • 通过封装ResultVO通用返回结果对象之后,保证了后端跟前端视图对象(VO)的统一。
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT枫斗者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值