1. 定义通用返回后果类

定义ResultVO类,作返回给前端的对象构造,次要有4个字段

  • code : 错误码
  • data : 内容
  • message : 音讯
  • description : 具体形容
import lombok.Data;import java.io.Serializable;/** * 通用返回后果类 * @param <T> */@Datapublic 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,"");    }    }

2 工具类

/** * 通用返回响应工具类 * * @author leovany * @date 2023/09/23 */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);    }}

3 应用

  • 返回值用 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);}

跟之前比照,代码更加优雅

4 返回给前端效果图

返回给前端的响应后果

{    "code": 0,    "data": {        "id": 10,        "username": "admin"    },    "message": "success",    "description": ""}
  • 胜利

  • 失败

   总结

通过封装ResultVO通用返回后果对象之后,保障了后端跟前端视图对象(VO)的对立。