【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("操作失败");
    }
}
相关推荐
学长毕设16 分钟前
基于SpringBoot的野生动物公益保护平台设计与实现-附源码
java·spring boot·后端
梦里寻码37 分钟前
我用 NestJS + Vue3 写了一套完整的研发管理系统(58 表 / 229 API / 130 项断言,全开源
前端·后端·算法
鶴哥只手遮天1 小时前
《Redis 8.10.3 深度剖析》系列 ·第 10 章 Hash 一:`listpack`、`hashtable` 与 `LISTPACK_EX`
redis·后端·开源
SL_staff1 小时前
离散制造排程破局:JVS-APS 四步闭环落地实践(开发者视角)
java·产品·全栈
johnjincaaaa1 小时前
WebAssembly 逆向实战:从 0 搞懂猿人学第 15 题
后端
Gopher_HBo1 小时前
Go CPU 剖析:四角色白话机制 + 实测实验
后端
这个昵称不容易1 小时前
SpringBoot 美容院管理系统:232个Java文件315个接口,5套角色从预约到发货一整条链路
java·springboot·毕设
猿人谷1 小时前
Surrogate Model:让进化算法学会“预测”,为什么它正在成为智能优化的重要技术?
后端·算法·架构
她的男孩1 小时前
三人会签只批了一个就往下走:Forge Admin 把 all / any / ratio 写成 completionCondition
spring boot·低代码·工作流引擎
装不满的克莱因瓶2 小时前
【SpringAI Alibaba】ReactAgent记忆管理MessageTrimmingHook与MessageDeletionHook
java·人工智能·ai·ai编程·springai·springaialibaba