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

 更新时间:2023年09月24日 14:20:00   作者:Leovany  
这篇文章主要为大家介绍了java定义通用返回结果类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);
}

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

4 返回给前端效果图

返回给前端的响应结果

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

  • 失败

   总结

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

以上就是java定义通用返回结果类ResultVO使用示例详解的详细内容,更多关于java返回结果类ResultVO的资料请关注脚本之家其它相关文章!

相关文章

  • Java深入了解数据结构之二叉搜索树增 插 删 创详解

    Java深入了解数据结构之二叉搜索树增 插 删 创详解

    二叉搜索树是以一棵二叉树来组织的。每个节点是一个对象,包含的属性有left,right,p和key,其中,left指向该节点的左孩子,right指向该节点的右孩子,p指向该节点的父节点,key是它的值
    2022-01-01
  • Spring-Validation 后端数据校验的实现

    Spring-Validation 后端数据校验的实现

    这篇文章主要介绍了Spring-Validation 后端数据校验的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • spring boot输入数据校验(validation)的实现过程

    spring boot输入数据校验(validation)的实现过程

    web项目中,用户的输入总是被假定不安全不正确的,在被处理前需要做校验。本文介绍在spring boot项目中实现数据校验的过程,通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • 你真的懂java的日志系统吗

    你真的懂java的日志系统吗

    日志管理的第一件事,就是日志的收集,日志收集是开发者必备的技巧,不管是哪个开发语言,哪个开发平台,日志收集的插件都是有很多选择的,下面这篇文章主要给大家介绍了关于java日志系统的相关资料,需要的朋友可以参考下
    2022-02-02
  • Spring Boot日志控制详解

    Spring Boot日志控制详解

    这篇文章主要为大家详细介绍了Spring Boot日志控制的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 一篇文章带你入门Springboot整合微信登录与微信支付(附源码)

    一篇文章带你入门Springboot整合微信登录与微信支付(附源码)

    微信支付是腾讯公司的支付业务品牌,微信支付商户平台支持线下场所、公众号、小程序、PC网站、APP、企业微信等经营场景快速接入微信支付。这里一篇文章带你入门!
    2021-06-06
  • Java 泛型总结(三):通配符的使用

    Java 泛型总结(三):通配符的使用

    在泛型的使用中,还有个重要的东西叫通配符,本文介绍通配符的使用。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • springboot+quartz以持久化的方式实现定时任务的代码

    springboot+quartz以持久化的方式实现定时任务的代码

    这篇文章主要介绍了springboot+quartz以持久化的方式实现定时任务的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java synchronized轻量级锁实现过程浅析

    Java synchronized轻量级锁实现过程浅析

    这篇文章主要介绍了Java synchronized轻量级锁实现过程,synchronized是Java里的一个关键字,起到的一个效果是"监视器锁",它的功能就是保证操作的原子性,同时禁止指令重排序和保证内存的可见性
    2023-02-02
  • 深入浅出MappedByteBuffer(推荐)

    深入浅出MappedByteBuffer(推荐)

    MappedByteBuffer使用虚拟内存,因此分配(map)的内存大小不受JVM的-Xmx参数限制,但是也是有大小限制的,这篇文章主要介绍了MappedByteBuffer的基本知识,需要的朋友可以参考下
    2022-12-12

最新评论