后端返回数据模板

概要

提示:这里可以添加技术概要

后端返回模板规范

整体架构流程

提示:这里可以添加技术整体架构

后端技术springboot,springMVC

技术名词解释

提示:这里可以添加技术名词解释

思想:面向对象的封装思想,response统一返回数据给前端。
泛型:class T代表任何实体类
@Data: jDK1.8的注解,lombok表达式,省略get,set注解
static:静态的,程序运行时调用,常用于方法时初始化

技术细节

提示:这里可以添加技术细节

小结

提示:这里可以添加总结

可以使代码看起来更简结,看起来更规范

@Data
@Builder
public class ResponseResult<T> {

    private boolean success;

    private int statusCode;

    private long timestamp;

    private String message;

    private T data;


    public static <T> ResponseResult<T> success() {
        return success(null);
    }

    public static <T> ResponseResult<T> success(T data) {
        return ResponseResult.<T>builder().data(data)
                .success(ResponseStatus.SUCCESS.isSuccess())
                .statusCode(ResponseStatus.SUCCESS.getStatusCode())
                .timestamp(System.currentTimeMillis())
                .data(data)
                .build();
    }

    public static <T extends Serializable> ResponseResult<T> fail(String message, int errorCode) {
        return fail(null, message,errorCode);
    }


    public static <T> ResponseResult<T> fail(T data, String message, int errorCode) {
        return ResponseResult.<T>builder().data(data)
                .success(ResponseStatus.FAIL.isSuccess())
                .statusCode(errorCode)
                .timestamp(System.currentTimeMillis())
                .message(message)
                .build();
    }

    public static <T> ResponseResult<T> init (ResponseStatus responseStatus,T data) {
        ResponseResult<T> responseResult = init(responseStatus);
        responseResult.setData(data);
        return responseResult;
    }

    public static <T> ResponseResult<T> init (ResponseStatus responseStatus) {
        return ResponseResult.<T>builder()
                .success(responseStatus.isSuccess())
                .statusCode(responseStatus.getStatusCode())
                .timestamp(System.currentTimeMillis())
                .message(responseStatus.getDescription())
                .build();
    }
}

你可能感兴趣的:(java,开发语言)