小工具知识网

当前位置: 首页 > 行业知识 > 【java】使用springMVC优雅的响应数据

行业知识

【java】使用springMVC优雅的响应数据

2026-11-01 07:43:48 来源:互联网转载

��1.抽象接口

()
import java.io.Serializable;
public interface IResultCode extends Serializable { String getMessage(); int getCode(); }

2. 利用枚举类实现接口创建对象

public enum ResultCode implements IResultCode {    SUCCESS(200, "操作成功"),    FAILURE(400, "业务异常"),    UN_AUTHORIZED(401, "请求未授权"),    NOT_FOUND(404, "404 没找到请求"),    MSG_NOT_READABLE(400, "消息不能读取"),    METHOD_NOT_SUPPORTED(405, "不支持当前请求方法"),    MEDIA_TYPE_NOT_SUPPORTED(415, "不支持当前媒体类型"),    REQ_REJECT(403, "请求被拒绝"),    INTERNAL_SERVER_ERROR(500, "服务器异常"),    PARAM_MISS(400, "缺少必要的请求参数"),    PARAM_TYPE_ERROR(400, "请求参数类型错误"),    PARAM_BIND_ERROR(400, "请求参数绑定错误"),    PARAM_VALID_ERROR(400, "参数校验失败");    final int code;    final String message;    public int getCode() {        return this.code;    }    public String getMessage() {        return this.message;    }    private ResultCode(final int code, final String message) {        this.code = code;        this.message = message;    }}

 

()

3.响应类

import java.io.Serializable;import java.util.Optional;@ApiModel(    description = "返回信息")public class R implements Serializable {    private static final long serialVersionUID = 1L;    @ApiModelProperty(        value = "状态码",        required = true    )    private int code;    @ApiModelProperty(        value = "是否成功",        required = true    )    private boolean success;    @ApiModelProperty("承载数据")    private T data;    @ApiModelProperty(        value = "返回消息",        required = true    )    private String msg;    private R(IResultCode resultCode) {        this(resultCode, null, resultCode.getMessage());    }    private R(IResultCode resultCode, String msg) {        this(resultCode, null, msg);    }    private R(IResultCode resultCode, T data) {        this(resultCode, data, resultCode.getMessage());    }    private R(IResultCode resultCode, T data, String msg) {        this(resultCode.getCode(), data, msg);    }    private R(int code, T data, String msg) {        this.code = code;        this.data = data;        this.msg = msg;        this.success = ResultCode.SUCCESS.code == code;    }    public static boolean isSuccess(@Nullable R result) {        return (Boolean)Optional.ofNullable(result).map((x) -> {            return ObjectUtils.nullSafeEquals(ResultCode.SUCCESS.code, x.code);        }).orElse(Boolean.FALSE);    }    public static boolean isNotSuccess(@Nullable R result) {        return !isSuccess(result);    }    public static  R data(T data) {        return data(data, "操作成功");    }    public static  R data(T data, String msg) {        return data(200, data, msg);    }    public static  R data(int code, T data, String msg) {        return new R(code, data, data == null ? "暂无承载数据" : msg);    }    public static  R success(String msg) {        return new R(ResultCode.SUCCESS, msg);    }    public static  R success(IResultCode resultCode) {        return new R(resultCode);    }    public static  R success(IResultCode resultCode, String msg) {        return new R(resultCode, msg);    }    public static  R fail(String msg) {        return new R(ResultCode.FAILURE, msg);    }    public static  R fail(int code, String msg) {        return new R(code, (Object)null, msg);    }    public static  R fail(IResultCode resultCode) {        return new R(resultCode);    }    public static  R fail(IResultCode resultCode, String msg) {        return new R(resultCode, msg);    }    public static  R status(boolean flag) {        return flag ? success("操作成功") : fail("操作失败");    }    public int getCode() {        return this.code;    }    public boolean isSuccess() {        return this.success;    }    public T getData() {        return this.data;    }    public String getMsg() {        return this.msg;    }    public void setCode(final int code) {        this.code = code;    }    public void setSuccess(final boolean success) {        this.success = success;    }    public void setData(final T data) {        this.data = data;    }    public void setMsg(final String msg) {        this.msg = msg;    }    public String toString() {        return "R(code=" + this.getCode() + ", success=" + this.isSuccess() + ", data=" + this.getData() + ", msg=" + this.getMsg() + ")";    }    public R() {    }}

 

上一篇:JS实战——轮播图

下一篇:安卓14+系统免ROOT读取/Android/data目录方案(Shizuku教程)