【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("操作失败");
    }
}
相关推荐
SeaDhdhdhdhdh3 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH55269843 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站4 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
普通网友4 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
笃行3504 小时前
向量数据库单独建一套,这笔账划不划算
后端
许彰午5 小时前
03-三种开发模式
java·架构
涟漪海洋5 小时前
创建最新的JDK25镜像,非root环境启动
java
weixin_431600445 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Rain的Java大神之路5 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
孙克旭_6 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile