前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 后台返回的实体对象 ResultPage 无状态篇

Java 后台返回的实体对象 ResultPage 无状态篇

作者头像
收心
发布2022-01-17 14:17:27
9740
发布2022-01-17 14:17:27
举报
文章被收录于专栏:Java实战博客

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

怎么解决呢?

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

ResultInfo 实体类 代码

代码语言:javascript
复制
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回收,造成性能浪费。

创建 提示信息的实体类

代码语言:javascript
复制
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 = "这里我就过多讲解了";
}

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

代码语言:javascript
复制
return new ResultPage(false, ResultInfo.addUserFail,null);

完结。

特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么解决呢?
  • ResultInfo 实体类 代码
  • 创建 提示信息的实体类
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档