spring 后端服务接口统一封装结果集

具体使用:

@RequestMapping("/test")
@RestController
public class TestController {

    @RequestMapping("/test1")
    public Rt<String> test1() {
        return Rt.result(RtMsg.CODE_SUCCESS);
    }

    @RequestMapping("/test2")
    public Rt<Date> test2() {
        return Rt.result(RtMsg.CODE_SUCCESS, new Date());
    }

    @RequestMapping("/test3")
    public Rt test3() {
        return Rt.result(RtMsg.CODE_SUCCESS, new Date());
    }

    @RequestMapping("/test4")
    public Rt test4() {
        return Rt.result("200", "success", new Date());
    }
}

具体实现:

1. 定义接口:

public interface RtM {

    /**
     * 定义接口方法, 后续枚举类实现该接口后, 可共用返回结果集
     *
     * @return
     */
    String getCode();

    /**
     * 定义接口方法, 后续枚举类实现该接口后, 可共用返回结果集
     *
     * @return
     */
    String getMsg();

}

2. 创建基础枚举类, 实现接口

public enum RtMsg implements RtM {
    /**
     * 返回状态: 成功200, 失败非200
     */
    CODE_SUCCESS("200", "SUCCESS"),
    CODE_ERROR("0", "FAIL"),
    ;

    public String code;
    public String msg;

    RtMsg(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }

}

3. 具体返回结果集对象

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

    public Rt() {
    }

    public Rt(String code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Rt(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Rt(String msg, T data) {
        this.msg = msg;
        this.data = data;
    }

    public Rt(RtM resultCode) {
        this.code = resultCode.getCode();
        this.msg = resultCode.getMsg();
    }

    public Rt(RtM resultCode, T data) {
        this.code = resultCode.getCode();
        this.msg = resultCode.getMsg();
        this.data = data;
    }

    /**
     * 自定义-无返回值
     *
     * @param code
     * @param msg
     * @return
     */
    public static Rt result(String code, String msg) {
        return new Rt(code, msg);
    }

    /**
     * 自定义-传返回值
     *
     * @param code
     * @param msg
     * @param data
     * @return
     */
    public static Rt result(String code, String msg, Object data) {
        return new Rt(code, msg, data);
    }

    /**
     * 枚举: 成功/失败 - 返回状态码+提示语句+数据展示
     *
     * @param resultCode
     * @param data
     * @return
     */
    public static Rt result(RtM resultCode, Object data) {
        return new Rt(resultCode.getCode(), resultCode.getMsg(), data);
    }

    /**
     * 枚举: 成功/失败 - 返回状态码+提示语句
     *
     * @param resultCode
     * @return
     */
    public static Rt result(RtM resultCode) {
        return new Rt(resultCode.getCode(), resultCode.getMsg());
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

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

}

注: 后续可拓展创建不同枚举类, 避免项目中所有提示语句都放在同一个枚举类中.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值