【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("操作失败");
    }
}
相关推荐
想做小南娘,发现自己是女生喵1 分钟前
LAN Device Monitor 第二周学习文档
java·服务器·数据库
念何架构之路2 分钟前
Go reflect包值操作 Value 的读写、可设置性与 interface 布局
开发语言·后端·golang
小林ixn5 分钟前
用 FastAPI + SQLAlchemy 从零手搓一个博客系统:一套能落地、能讲清楚的 RESTful 后端
后端·python·fastapi
Wang's Blog12 分钟前
Java 项目实战: 交友项目 - 查询推荐动态
java·开发语言·交友
不识君13 分钟前
esl-client 2.0.0 发布:Java 项目接入 FreeSWITCH,从引入到使用
spring boot·后端·开源
jaysee-sjc19 分钟前
【苍穹外卖】Day10:定时任务与 WebSocket 实时提醒实战
java·开发语言·javascript·数据库·vue.js·websocket·网络协议
独隅22 分钟前
Claude 高效应用实战指南
android·java·开发语言·claude·claude code
WJ.Polar28 分钟前
异常、泛型、集合、Stream流
java·数据结构
牧瀬クリスだ29 分钟前
Redis五大数据类型全解析:从入门到实战
java·数据库·redis·后端·缓存
Nuanyt40 分钟前
LeetCode Hot 100 · 双指针 3 题 Java
java·笔记·算法·leetcode·双指针