java定义通用返回结果类ResultVO使用示例详解
定义通用返回结果类
-
定义ResultVO类,作返回给前端的对象结构,主要有4个字段
-
code : 错误码
-
data : 内容
-
message : 消息
-
description : 具体描述
-
import lombok.Data; import java.io.Serializable; /** * 通用返回结果类 * @param <T> */ @Data public class ResultVO<T> implements Serializable { /** * 错误码 */ private int code; /** * 内容 */ private T data; /** * 消息 */ private String message; /** * 描述 */ private String description; public ResultVO(int code, T data, String message, String description) { this.code = code; this.data = data; this.message = message; this.description = description; } public ResultVO(int code, T data) { this(code,data,"",""); } public ResultVO(int code, T data, String message) { this(code,data,message,""); } }
工具类
-
/** * 通用返回响应工具类 * * @author leovany */ public class ResultUtils { /** * 成功 * * @param data 数据 * @return {@link ResultVO}<{@link T}> */ public static <T> ResultVO<T> success(T data) { return new ResultVO<T>(0, data, "success"); } /** * 错误 * * @param code 错误码 * @param message 信息 * @param description 描述 * @return {@link ResultVO} */ public static ResultVO error(int code, String message, String description) { return new ResultVO<>(code, null, message, description); } }
使用
-
返回值用
ResultVO<XXX>
封装 -
成功返回:
ResultUtils.success(XX);
-
失败失败:
ResultUtils.error(code,message,description);
-
@PostMapping("/login") public ResultVO<User> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) { String userAccount = userLoginRequest.getUserAccount(); String userPassword = userLoginRequest.getUserPassword(); // 参数校验 if (StringUtils.isAnyBlank(userAccount, userPassword)) { return ResultUtils.error(40000,"参数错误","参数不能为空"); } // 从数据库查找用户 User user = userService.doLogin(userAccount, userPassword, request); return ResultUtils.success(user); }
-
跟之前对比,代码更加优雅
-
返回给前端效果图
-
返回给前端的响应结果
-
{ "code": 0, "data": { "id": 10, "username": "admin" }, "message": "success", "description": "" }
-
成功
-
失败
总结
- 通过封装
ResultVO
通用返回结果对象之后,保证了后端跟前端视图对象(VO)的统一。