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

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

怎么解决呢?

我们创建一个规范的实体类,规定好需要的参数。 将来返回给前端数据 不就解决大部分的问题了么? 下面只是一个图片,图片下方下面有可复制的代码

ResultInfo 实体类 代码

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 作者:臧立昆
 * 2021/2/1 9:27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("返回前端结果的实体类")
public class ResultPage<T> implements Serializable {

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

    @ApiModelProperty(value = "myflag:请求的结果 ture是请求有效且成功,false请求是无效或失败")
    private Boolean myFlag;

    @ApiModelProperty(value = "msg:返回的人工信息")
    private String msg;

    @ApiModelProperty(value = "data 返回的数据,这个更名为mydata,避免与前端的读取的this.data重复 对axios或vue不理解容易出现错误!")
    private T myData;

    @ApiModelProperty(value = "total 返回数据的数量")
    private Integer total;

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

}

同时 ,我们在 给前端写数据的时候,尽量不要每次 都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 = "这里我就过多讲解了";
}

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

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

完结。

发表评论

您的电子邮箱地址不会被公开。