首页 > 编程语言 >java定义通用返回结果类ResultVO使用示例详解

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

时间:2024-09-02 17:24:00浏览次数:12  
标签:code java description 示例 ResultVO message data String


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

返回给前端效果图

  • 返回给前端的响应结果
{
    "code": 0,
    "data": {
        "id": 10,
        "username": "admin"
    },
    "message": "success",
    "description": ""
}
  • 成功
  • 失败

总结

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


标签:code,java,description,示例,ResultVO,message,data,String
From: https://blog.51cto.com/u_15903793/11899610

相关文章

  • java中的synchronized
    介绍Java中的synchronized关键字是一种内置的同步机制,用于实现线程之间的互斥,以确保多个线程在同一时刻只能有一个线程访问特定的代码段或对象。synchronized可以用于方法或代码块,从而实现对共享资源的安全访问。前言需要明确的是,锁是针对对象而言的,以下场景实际上都是在描述外......
  • 程序员必备Java八股文合集
    1、Java线程具有五中基本状态(1)新建状态(New): 当线程对象对创建后,即进入了新建状态,如:Threadt=newMyThread();(2)就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不......
  • java集合练习02
    使用ArrayList完成对对象Car{name,price}的各种操作1.add:添加单个元素2.remove:删除指定元素3.contains:查找元素是否存在•4.size:获取元素个数5.isEmpty:判断是否为空6.Clear:清空7.addAll:添加多个元素8.containsAll:查找多个元素是否都存在9.removeAll:删除多个元素1......
  • Java基础(7)- Java代码笔记4
    目录一、面向对象1.面向对象介绍2.类的介绍和定义3.对象的使用4.匿名对象5.面向对象内存图a.一个对像内存图b.两个对象内存图c.两个对象指向同一片空间内存图6.成员变量和局部变量的区别7.MyDate类二、封装1.封装介绍2.private关键字3.get&set方法4.this关键字......
  • Java服务端数据库连接:连接池的资源管理
    Java服务端数据库连接:连接池的资源管理大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java服务端开发中,数据库连接池是管理数据库连接的重要工具,它能有效提高数据库操作的性能和稳定性。然而,连接池的资源管理同样重要,它涉及到连接的创建、使用、回......
  • 终于整理完了,2024年最新Java八股文
    一、Java并发面试题1、ThreadLocal1.1谈谈你对ThreadLocal的理解?ThreadLocal的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的。它不是针对程序的全局变量,只是针对当前线程的全局变量。1.2ThreadLocal底层实现原理?Threadlocal内部......