在java中,我们编写接口的时候,一般都会有一个公共的返回实体,然后再controller的时候,直接return对应的实体即可。这里我们也提供一个公共的实体类工具。这里的工具分为两部分,一部分是枚举类,完整代码如下:
package com.demo.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 错误编码
*
*/
@Getter
@AllArgsConstructor
public enum ErrorCode {
UNAUTHORIZED(401, "还未授权,不能访问"),
FORBIDDEN(403, "没有权限,禁止访问"),
INTERNAL_SERVER_ERROR(500, "服务器异常,请稍后再试"),
ACCOUNT_PASSWORD_ERROR(1001, "账号或密码错误");
private final int code;
private final String msg;
}另外一部分是公共的实体返回类:
package com.demo.model;
import lombok.Data;
/**
* 响应数据
*
* @author 阿沐 babamu@126.com
*/
@Data
public class Result<T> {
private int code = 0;
//消息内容
private String msg = "success";
//响应数据
private T data;
public static <T> Result<T> ok() {
return ok(null);
}
public static <T> Result<T> ok(T data) {
Result<T> result = new Result<>();
result.setData(data);
return result;
}
public static <T> Result<T> error() {
return error(ErrorCode.INTERNAL_SERVER_ERROR);
}
public static <T> Result<T> error(String msg) {
return error(ErrorCode.INTERNAL_SERVER_ERROR.getCode(), msg);
}
public static <T> Result<T> error(ErrorCode errorCode) {
return error(errorCode.getCode(), errorCode.getMsg());
}
public static <T> Result<T> error(int code, String msg) {
Result<T> result = new Result<>();
result.setCode(code);
result.setMsg(msg);
return result;
}
}在使用的时候,controller可以这么写:
public Result<PageResult<DataDatabaseVO>> page(@Valid DataDatabaseQuery query) {
PageResult<DataDatabaseVO> page = dataDatabaseService.page(query);
return Result.ok(page);
}








还没有评论,来说两句吧...