Java Springboot3 统一返回封装

本文只做最简单的功能实现

创建result项目包

一、创建Result类

代码如下

package com.lingyang.system.util.result;

import lombok.Data;

/**
 * @author **文
 * @Description:
 * @createDate 2024/7/19 13:12
 **/
@Data
public class Result<T> {

    private Integer code;

    private String message;

    private T data;

    private Result(){}

    //设置数据,返回对象的方法
    public static<T> Result<T> Build(T data,ResultCodeEnum resultCodeEnum){
        Result<T> result = new Result<>();

        if(data != null){
            result.setData(data);
        }

        result.setCode(resultCodeEnum.getCode());
        result.setMessage(resultCodeEnum.getMessage());

        return result;
    }

    public static<T> Result<T> success(T data){
        Result<T> result = Build(data,ResultCodeEnum.SUCCESS);
        return result;
    }

    public static<T> Result<T> error(T data){
        Result<T> result = Build(data,ResultCodeEnum.FAIL);
        return result;
    }

}

二、创建ResultCodeEnum枚举类

package com.lingyang.system.util.result;

import lombok.Getter;

/**
 * @author **文
 * @Description:
 * @createDate 2024/7/19 13:12
 **/
@Getter
public enum ResultCodeEnum {

    SUCCESS(200,"成功"),
    FAIL(201, "失败"),

    SERVICE_ERROR(2012, "服务异常"),
    DATA_ERROR(204, "数据异常"),
    ILLEGAL_REQUEST(205, "非法请求"),
    REPEAT_SUBMIT(206, "重复提交"),

    LOGIN_AUTH(208, "未登陆"),
    PERMISSION(209, "没有权限"),

    ORDER_PRICE_ERROR(210, "订单商品价格变化"),
    ORDER_STOCK_FALL(204, "订单库存锁定失败"),
    CREATE_ORDER_FAIL(210, "创建订单失败"),

    COUPON_GET(220, "优惠券已经领取"),
    COUPON_LIMIT_GET(221, "优惠券已发放完毕"),

    URL_ENCODE_ERROR( 216, "URL编码失败"),
    ILLEGAL_CALLBACK_REQUEST_ERROR( 217, "非法回调请求"),
    FETCH_ACCESSTOKEN_FAILD( 218, "获取accessToken失败"),
    FETCH_USERINFO_ERROR( 219, "获取用户信息失败"),


    SKU_LIMIT_ERROR(230, "购买个数不能大于限购个数"),
    REGION_OPEN(240, "该区域已开通"),
    REGION_NO_OPEN(240, "该区域未开通"),
    PAYMENT_WAITING(242, "订单支付中"),
    PAYMENT_SUCCESS(241, "订单支付成功"),
    PAYMENT_FAIL(243, "订单支付失败"),
            ;

    private Integer code;

    private String message;

    private ResultCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 中,我们可以使用统一返回处理来规范 API 接口的返回格式,避免重复的代码和降低维护成本。 一般来说,我们可以定义一个 Result 类来封装接口返回的数据,包括状态码、提示信息和返回数据等。同时,我们还可以定义一个异常处理类来捕获全局的异常,并将异常信息封装到 Result 类中返回给前端。 以下是一个示例代码: ```java @Data @NoArgsConstructor @AllArgsConstructor public class Result<T> { private Integer code; private String msg; private T data; public static <T> Result<T> success(T data) { return new Result<>(200, "success", data); } public static Result<?> error(Integer code, String msg) { return new Result<>(code, msg, null); } } @ControllerAdvice @ResponseBody public class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) public Result<?> handleException(Exception e) { log.error("未知异常:{}", e.getMessage()); return Result.error(500, "服务器内部错误"); } @ExceptionHandler(value = BusinessException.class) public Result<?> handleBusinessException(BusinessException e) { log.error("业务异常:{}", e.getMessage()); return Result.error(e.getCode(), e.getMessage()); } } ``` 在上面的代码中,我们定义了一个 Result 类来封装接口返回的数据。其中,success 方法表示成功时返回的结果,error 方法表示失败时返回的结果。 同时,我们还定义了一个全局异常处理器 GlobalExceptionHandler,用来捕获全局的异常。在 handleException 和 handleBusinessException 方法中,我们分别处理了未知异常和业务异常,并将异常信息封装到 Result 类中返回给前端。 通过使用统一返回处理,我们可以大大简化接口返回的代码,提高代码的可维护性和可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值