首先,为什么需要这个ResultPage 实体类对象呢? 是因为 如果每次我们给前端传递的参数 都是我们自定义的,前端在发送请求获取的时候,可能获取到了数据,但无法判断是否有效、以及获取到数据后,再想获取数量的时候,需要再次发送请求。增加了后台的压力,同时前端增加了不必要的代码量,导致一些不必要的麻烦。
我们创建一个规范的实体类,规定好需要的参数。 将来返回给前端数据 不就解决大部分的问题了么? 下面只是一个图片,图片下方下面有可复制的代码
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);
完结。
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!