Java 后台返回的实体对象 ResultInfo

首先,为什么需要这个ResultInfo 实体类对象呢?

是因为 如果每次我们给前端传递的参数 都是我们自定义的,前端在发送请求获取的时候,可能获取到了数据,但无法判断是否有效、以及获取到数据后,再想获取数量的时候,需要再次发送请求。增加了后台的压力,同时前端增加了不必要的代码量,导致一些不必要的麻烦。

怎么解决呢?

我们创建一个规范的实体类,规定好需要的参数。 将来返回给前端数据 不就解决大部分的问题了么?

ResultInfo 实体类 代码

package com.giant.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;

/**
 * 作者:臧立昆
 * 2021/2/1 9:27 修订内容:将构造方法的 Lombok 注解 取消。方便一些IDEA 没有插件 导致无相关方法导致无法使用的问题
 */

@ApiModel("结果实体类") //swagger 的注解 注明他是一个 实体类
public class ResultPage<T> implements Serializable {

    private static final long serialVersionUID = -671958543348052007L; // 防止因为修改类属性导致反序列化失败,最好设置一个serialVersionUID。

    @ApiModelProperty(value = "请求的结果") //swagger 的注解 注明他是一个 实体类的属性
    private Boolean flag;

    @ApiModelProperty(value = "返回的提示") //swagger 的注解 注明他是一个 实体类的属性
    private String Msg;

    @ApiModelProperty(value = "返回的数据") //swagger 的注解 注明他是一个 实体类的属性
    private T data;

    @ApiModelProperty(value = "返回数据的数量") //swagger 的注解 注明他是一个 实体类的属性
    private Integer total;

    /**
     * 无参构造方法
     */
    public ResultPage() {
    }

    /**
     * 全参构造方法
     *
     * @param flag  用于前端判断 请求是否有效、成功的条件
     * @param msg   后台给前台的提示信息
     * @param data  后台给前台的数据,无数据就是 null
     * @param total 后台给前台的数据的数量,无数据就是 0
     */
    public ResultPage(Boolean flag, String msg, T data, Integer total) {
        this.flag = flag;
        Msg = msg;
        this.data = data;
        this.total = total;
    }

    /**
     * 3个参数的 构造方法 这里对比 全参构造方法少了 total数量 参数,可用于 不需要给前端传输数据的返回 对象
     *
     * @param flag
     * @param msg
     * @param data
     */
    public ResultPage(Boolean flag, String msg, T data) {
        this.flag = flag;
        Msg = msg;
        this.data = data;
    }

    /**
     * 下面是 get set 方法
     *
     * @return
     */
    public Boolean getFlag() {
        return flag;
    }

    public void setFlag(Boolean flag) {
        this.flag = flag;
    }

    public String getMsg() {
        return Msg;
    }

    public void setMsg(String msg) {
        Msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public Integer getTotal() {
        return total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    /**
     * toString 方法
     *
     * @return
     */
    @Override
    public String toString() {
        return "ResultPage{" +
                "flag=" + flag +
                ", Msg='" + Msg + '\'' +
                ", data=" + data +
                ", total=" + total +
                '}';
    }
}

同时 ,我们在 给前端写数据的时候,尽量不要每次 都new String 返回,这样也会造成常量池的浪费,间接导致gc回收,造成性能浪费。

创建 提示信息的实体类

import io.swagger.annotations.ApiModel;

/**
 * @author : zanglikun
 * @date : 2021/2/1 9:48
 * @Version: 1.0
 * @Desc : 1688 项目
 */
@ApiModel("提示信息实体类")
public class ResultInfo {
    public static final String addUserSuccess = "注册用户成功";
    public static final String addUserFail = "注册用户失败";
    public static final String sendEmailCheckCodeSuccess = "发送邮件验证码成功";
    public static final String sendEmailCheckCodeFail = "发送邮件验证码失败";
    public static final String sendTelphontCheckCodeSuccess = "发送手机验证码成功";
    public static final String sendTelphoneCheckCodeFail = "发送手机验证码失败";
    public static final String prosecuteUserSuccess = "举报用户成功";
    public static final String prosecuteUserFail = "举报用户无效";
    public static final String jailUserSuccess = "封禁用户成功";
    public static final String jailFail = "封禁用户无效";
    public static final String pardonUserSuccess = "释放用户成功";
    public static final String pardonFail = "释放用户无效";
    
    public static final String AndSoOn = "这里我就过多讲解了";
}

每次使用的时候 直接 类名.属性

new ResultPage(false, ResultInfo.addUserFail,null);

完结。

还是那句话,你只看到了大佬轻松解决问题的光鲜,却不记得当初人家死磕Bug的痛苦。

万物皆入轮回,谁也躲不掉!

以上文章,均是我实际体验,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,支持下原创,请勿直接盗用,有条件的可以开通个会员支持下,谢谢!!!

Java Code Study » Java 后台返回的实体对象 ResultInfo

招聘、单纯问问题,都可以联系我

加我QQ 公司缺人,拉我入伙