【spring boot项目】统一返回结果封装

ResultCode.java

java 复制代码
package cn.clz.rental.utils;
/**
 * 定义HTTP状态码常量
 * 这些常量用于表示不同类型的HTTP响应状态。
 */
public class ResultCode {
    // 表示请求成功的状态码
    public static final Integer SUCCESS = 200;

    // 表示服务器内部错误的状态码
    public static final Integer ERROR = 500;

    // 表示请求需要用户验证的状态码
    public static final Integer UNAUTHENTICATED = 401;

    // 表示请求未授权的状态码
    public static final Integer UNAUTHORIZED = 403;
}

Result.java

java 复制代码
package cn.clz.rental.utils;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 统一返回结果
 */
@Data
@Accessors(chain = true)
public class Result<T> {
    private Integer code;
    private String message;
    private Boolean success;
    private T data;

    private Result() {
    }


    /**
     * 创建一个表示操作成功的Result对象。
     *
     * @param <T> 结果对象的类型。
     * @return 返回一个初始化为成功状态的Result对象,包含成功标志、成功代码和成功消息。
     */
    public static <T> Result<T> success() {
        // 创建Result对象并初始化为成功状态
        return new Result<T>().setSuccess(true)
                .setCode(ResultCode.SUCCESS).setMessage("操作成功");
    }

    /**
     * 创建一个表示操作成功的 Result 对象。
     *
     * @param data 成功时返回的数据。
     * @param <T> 数据的类型。
     * @return 返回一个初始化为成功状态的 Result 对象,包含指定的数据。
     */
    public static <T> Result<T> success(T data) {
        // 初始化 Result 对象为成功状态,并设置相关属性
        return new Result<T>().setSuccess(true)
                .setCode(ResultCode.SUCCESS)
                .setMessage("操作成功").setData(data);
    }

    /**
     * 创建一个表示操作失败的结果对象。
     *
     * @param <T> 结果对象的类型。
     * @return 返回一个初始化为失败状态的 Result 对象,其中包含错误代码和消息。
     */
    public static <T> Result<T> fail(){
        // 初始化 Result 对象为失败状态,设置错误代码和消息
        return new Result<T>().setSuccess(false)
                .setCode(ResultCode.ERROR).setMessage("操作失败");
    }
}
相关推荐
{Hello World}1 天前
Java抽象类与接口深度解析
java·开发语言
AI视觉网奇1 天前
ue5 自定义 actor ac++ actor 用法实战
java·c++·ue5
光明顶上的5G1 天前
本地缓存面试重点
java·缓存·面试
haluhalu.1 天前
深入理解Linux线程机制:线程概念,内存管理
java·linux·运维
jiaguangqingpanda1 天前
Day22-20260118
java·开发语言
雪碧聊技术1 天前
1、LangChain4j 名字的寓意
java·大模型·langchain4j
风生u1 天前
bpmn 的理解和元素
java·开发语言·工作流·bpmn
派大鑫wink1 天前
【Day34】Servlet 进阶:会话管理(Cookie vs Session)
java·开发语言·学习方法
多米Domi0111 天前
0x3f 第35天 电脑硬盘坏了 +二叉树直径,将有序数组转换为二叉搜索树
java·数据结构·python·算法·leetcode·链表
zqmattack1 天前
SQL优化与索引策略实战指南
java·数据库·sql