为了后台返回值统一格式,在util包中创建Result类将返回值封装
public class Result <T> {
private int code; // 状态码
private String msg; // 返回的信息
private T data; // 返回的数据
/**
* 成功时候的调用(有数据)
* @param data
* @param <T>
* @return
*/
public static <T> Result<T> success(T data){
return new Result<T>(data);
}
/**
* 成功时候的调用(无数据)
* @param <T>
* @return
*/
public static <T> Result<T> success(){
return new Result<T>();
}
/**
* 异常时候的调用(有msg参数)
* @param msg
* @param <T>
* @return
*/
public static <T> Result<T> error(String msg){
return new Result<T>(msg);
}
/**
* 异常时候的调用(无msg参数)
* @param <T>
* @return
*/
public static <T> Result<T> error(){
return new Result<T>("error");
}
private Result(T data) {
this.code = 200;
this.msg = "success";
this.data = data;
}
private Result() {
this.code = 200;
this.msg = "success";
}
private Result(String msg) {
this.code = 400;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
public T getData() {
return data;
}
}
而控制层的getAll方法的返回类型等要改为:
@GetMapping("/getAll")
public Result getAll() {
return Result.success(service.getAll());
}
1
2
3
4
此时用Postman访问http://localhost:8080/student/getAll得到的结果如下:
当然也可以在封装一个常用异常状态参数的类Error(静态异常可以根据项目自由定义)
public class Error {
private int code; // 状态码
private String msg; // 返回的信息
private Error(int code, String msg) {
this.code = code;
this.msg = msg;
}
// 静态常用异常
public static Error ERROR_1 = new Error(400,"异常类型一");
public static Error ERROR_2 = new Error(500,"异常类型二");
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
然后在Result类中添加如下方法:
/**
* 异常时候的调用(固定参数)
* @param erro
* @param <T>
* @return
*/
public static <T> Result<T> error(Error error){
return new Result<T>(error);
}
private Result(Error error) {
if (error == null){
return ;
}
this.code = error.getCode();
this.msg = error.getMsg();
}
使用:
/**
* 测试定义参数异常
* @return
*/
@GetMapping("/getError")
public Result getError() {
return Result.error(ERROR_1);
}
————————————————
版权声明:本文为CSDN博主「Q大浪淘沙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46252893/article/details/123494809