【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("操作失败");
    }
}
相关推荐
没差c8 分钟前
springboot集成flyway
java·spring boot·后端
三水不滴10 分钟前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
时艰.19 分钟前
Java 并发编程之 CAS 与 Atomic 原子操作类
java·开发语言
编程彩机1 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
笨蛋不要掉眼泪1 小时前
Spring Boot集成LangChain4j:与大模型对话的极速入门
java·人工智能·后端·spring·langchain
Yvonne爱编码1 小时前
JAVA数据结构 DAY3-List接口
java·开发语言·windows·python
像少年啦飞驰点、2 小时前
零基础入门 Spring Boot:从“Hello World”到可上线微服务的完整学习指南
java·spring boot·微服务·编程入门·后端开发
眼眸流转2 小时前
Java代码变更影响分析(一)
java·开发语言
Yvonne爱编码2 小时前
JAVA数据结构 DAY4-ArrayList
java·开发语言·数据结构
阿猿收手吧!2 小时前
【C++】C++原子操作:compare_exchange_weak详解
java·jvm·c++