共计 1699 个字符,预计需要花费 5 分钟才能阅读完成。
1. 定义通用返回后果类
定义 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,"");
}
}
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)的对立。
正文完