java定义全局统筹返回类

原创
小哥 3年前 (2022-11-09) 阅读数 54 #大杂烩

全局统一返回类,可以返回各种实体数据、状态码、成功与失败信息等,实现全局返回值类型的统一功能。

代码非常简单,只需复制并使用即可。许多开源项目使用这组全局回报,这基本相同。如果有更好的方法或不规范的地方,请纠正我。

package com.cgh.common.utils;

import org.apache.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 *
 */
public class R extends HashMap {
    private static final long serialVersionUID = 1L;

    public R() {
        put("code", 0);
        put("msg", "success");
    }

    public static R error() {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请与管理员联系。");
    }

    public static R error(String msg) {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
    }

    public static R error(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("msg", msg);
        return r;
    }

    public static R ok(Map map) {
        R r = new R();
        r.putAll(map);
        return r;
    }

    public static R ok() {
        return new R();
    }

    public R put(String key, Object value) {
        super.put(key, value);
        return this;
    }
}

项目中的实际使用场景如下:
(1)返回成功和数据

(2返回故障、状态代码和错误消息等。

(3在查询的情况下,返回成功,实体数据。

(4)修改或删除、保存等,直接返回成功。

2021.03.17日更:
feign远程调用后获得的返回值。R,需要.get(“data”)获取,然后在转换中。javabean,特别笨重。图:

因此,为了解决这个问题R课程完成如下:

package com.atguigu.common.utils;

import org.apache.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 *
 * @author Mark chengguanghao
 */
public class R extends HashMap {
    private static final long serialVersionUID = 1L;

    private T data;

    public T getData() {
        return data;
    }

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

    public R() {
        put("code", 0);
        put("msg", "success");
    }

    public static R error() {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请与管理员联系。");
    }

    public static R error(String msg) {
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
    }

    public static R error(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("msg", msg);
        return r;
    }

    public static R ok(Map map) {
        R r = new R();
        r.putAll(map);
        return r;
    }

    public static R ok() {
        return new R();
    }

    public R put(String key, Object value) {
        super.put(key, value);
        return this;
    }
    public Integer getCode(){
        return (Integer) this.get("code");
    }
}

修改完R下课后,调用和返回变得方便,如下图所示:

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门