首先要封装一个响应的枚举,将一些常见的错误写入,一般状态码需要与前端一起制定,以便前端提示错误信息以及发生错误的处理逻辑。
package com.yww.demo.util;
/**
* 结果状态码枚举
*
* @author yww
*/
public enum ResultCode {
/**
* 成功
*/
SUCCESS(200, "成功"),
/**
* 服务器错误
*/
FAILED(500, "服务器发生错误");
private Integer status;
private String message;
ResultCode(Integer status, String message) {
this.status = status;
this.message = message;
}
public Integer getStatus() {
return this.status;
}
public String getMessage() {
return this.message;
}
}
然后是数据返回的封装类。
package com.yww.demo.util;
import lombok.Data;
/**
* @ClassName Result
* @Descriprtion 结果类封装
* @Author yww
* @Date 2021/5/21 23:22
**/
@Data
public class Result<T> {
/**
* 状态码
*/
private Integer code;
/**
* 返回内容
*/
private String message;
/**
* 返回数据
*/
private T data;
/**
* 私有化无参构造函数
*/
private Result() {}
/**
* 全参构造函数
*
* @param code 状态码
* @param message 返回内容
* @param data 返回数据
*/
public Result(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
* 返回一个响应成功的信息,不带数据
*/
public static <T> Result<T> success() {
return new Result<>(ResultCode.SUCCESS.getStatus(), ResultCode.SUCCESS.getMessage(), null);
}
/**
* 返回一个响应成功的信息,带数据
*
* @param data 返回数据
*/
public static <T> Result<T> success(T data) {
return new Result<>(ResultCode.SUCCESS.getStatus(), ResultCode.SUCCESS.getMessage(), data);
}
/**
* 返回一个响应错误的信息
*/
public static <T> Result<T> failure() {
return new Result<>(ResultCode.FAILED.getStatus(), ResultCode.FAILED.getMessage(),null);
}
/**
* 返回一个响应错误的信息,可以自定义错误信息
* @param message 返回的错误信息内容
*/
public static <T> Result<T> failure(String message) {
return new Result<>(ResultCode.FAILED.getStatus(), message,null);
}
/**
* 根据结果状态码,返回一个响应错误的信息
* @param resultCode 状态码
*/
public static <T> Result<T> failure(ResultCode resultCode) {
return new Result<>(resultCode.getStatus(), resultCode.getMessage(),null);
}
}