SpringBoot返回值封装

2022-08-01 17:09:30 浏览数 (1)

为了后台返回值统一格式,在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

0 人点赞