状态码类:
public enum ServiceCode {
OK(20000),
ERR_BAD_REQUEST(40000),//错误请求
ERR_NOT_FOUND(40400),//没有发现
ERR_UNAUTHORIZED(40100),//未经授权
ERR_UNAUTHORIZED_DISABLED(40110),//未经授权禁止
ERR_FORBIDDEN(40300),//被禁止的
ERR_CONFLICT(40900),//冲突
ERR_INSERT(50000),//插入异常
ERR_DELETE(50100),//删除异常
ERR_UPDATE(50200),//更新异常
ERR_SELECT(50300),//搜索异常
ERR_JWT_EXPIRED(60000),//jwt过期
ERR_JWT_MALFORMED(60100),//jwt格式不对
ERR_JWT_SIGNATURE(60200),//jwl签名错误
ERR_UNKNOWN(99999);//未知错误
private Integer value;
ServiceCode(Integer value) {
this.value = value;
}
public Integer getValue() {
return value;
}
}
返回类:
/**
* 统一的响应结果类型
*/
@Data //依赖导入lombok
public class JsonResult<T> implements Serializable {
/**
* 操作结果的状态码
*/
@ApiModelProperty("业务状态码")
private Integer state;
/**
* 操作“失败”时响应的提示文本
*/
@ApiModelProperty("消息")
private String message;
/**
* 操作“成功”时响应的数据
*/
@ApiModelProperty("数据")
private T data; // T=Type, E=Element, K=Key, V=Value。泛型
public static JsonResult<Void> ok() {
return ok(null);
}
public static <T> JsonResult<T> ok(T data) {
JsonResult jsonResult = new JsonResult();
jsonResult.setState(ServiceCode.OK.getValue());
jsonResult.setData(data);
return jsonResult;
}
public static JsonResult<Void> fail(ServiceException e) {
return fail(e.getServiceCode(), e.getMessage());
}
public static JsonResult<Void> fail(ServiceCode serviceCode, String message) {
JsonResult jsonResult = new JsonResult();
jsonResult.setState(serviceCode.getValue());
jsonResult.setMessage(message);
return jsonResult;
}
}
public static JsonResult<Void> fail(ServiceException e) {
return fail(e.getServiceCode(), e.getMessage());
}
public static JsonResult<Void> fail(ServiceCode serviceCode, String message) {
JsonResult jsonResult = new JsonResult();
jsonResult.setState(serviceCode.getValue());
jsonResult.setMessage(message);
return jsonResult;
}
}
(没有找到数据、不符合业务、查询失败等均抛出异常类,相当于if ···else···中的else情况)异常类:
/**
* 业务异常
*/
public class ServiceException extends RuntimeException {
private ServiceCode serviceCode;
public ServiceException(ServiceCode serviceCode, String message) {
super(message);
this.serviceCode = serviceCode;
}
public ServiceCode getServiceCode() {
return serviceCode;
}
}
使用:
//成功情况,不带数据,只返回2000状态码
public JsonResult<Void> 方法名(参数(可选))
return JsonResult.ok();
}
//成功情况,带数据.T表示需要返回的数据类型,如:对象、list、string·····
public JsonResult<T> 方法名(参数(可选))
return JsonResult.ok(T)
}
//错误情况,ServiceCode.状态码。message为字符串
JsonResult<Void> jsonResult = JsonResult.fail(ServiceCode.状态码, message);
return jsonResult;
//或者抛异常
throw new ServiceException(ServiceCode.状态码, message);
文章来源地址https://www.toymoban.com/news/detail-705098.html
文章来源:https://www.toymoban.com/news/detail-705098.html
到了这里,关于java-spring返回类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!