秒杀——返回前端数据的封装

现在我们一般都会返回json数据到前端,json输出的时候一般都会与客户端做一个接口上的约定,比如下图

所以我们可以根据上图做一个输出结果的封装

package com.yy.miaosha.result;

public class Result<T> {
    private int code;
    private String msg;
    private T data;


    /**
     *  构造函数
     */
    private Result(T data) {
        this.data = data;
    }

    private Result(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    private Result(CodeMsg codeMsg) {
        if(codeMsg != null) {
            this.code = codeMsg.getCode();
            this.msg = codeMsg.getMsg();
        }
    }


    /**
     *  成功时候的调用
     * */
    public static  <T> Result<T>  success(T data){
        return new Result<T>(data);
    }

    /**
     *  失败时候的调用
     * */
    public static  <T> Result<T>  error(CodeMsg codeMsg){
        return new Result<T>(codeMsg);
    }


    //这里省略了getter和setter方法
}

可以看到,当我们失败时的error方法需要传入一个CodeMsg(里面包含了code和msg的属性),因此,我们再建立一个CodeMsg的类

package com.yy.miaosha.result;

public class CodeMsg {
    private int code;
    private String msg;
    
    //构造函数
    private CodeMsg( ) {
    }

    private CodeMsg( int code,String msg ) {
        this.code = code;
        this.msg = msg;
    }

    //通用的错误码
    public static CodeMsg SUCCESS = new CodeMsg(0, "success");
    public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "服务端异常");
    public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s");
    public static CodeMsg REQUEST_ILLEGAL = new CodeMsg(500102, "请求非法");
    public static CodeMsg ACCESS_LIMIT_REACHED= new CodeMsg(500104, "访问太频繁!");




    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }

}

这里要注意,在自己类中只能定义static的类实例,不然会导致循环迭代。

这样我们就封装好了返回数据了。

 

最后我们通过在controller中测试下就可以啦

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值