当前位置: 首页> 娱乐> 明星 > 第十五节:学习Springboot 的响应结果封装(自学Spring boot 3.x的第四天)

第十五节:学习Springboot 的响应结果封装(自学Spring boot 3.x的第四天)

时间:2025/7/9 7:44:27来源:https://blog.csdn.net/qq_21004057/article/details/142137566 浏览次数:0次

这节记录下如何使用枚举类和响应封装类实现响应结果封装。

第一步:新建立一个枚举类。枚举类的要求有两个变量,响应码code,响应信息desc。响应码需要跟前端约定好。

public enum ResponseCode {SUCCESS("success",101),ERROR("error",102),ILLEGAL_ARGUMENT("illegal_argument",103);private final int code;private final String desc;ResponseCode(String desc, int code){this.desc = desc;this.code = code;}public int getCode() {return code;}public String getDesc() {return desc;}}

第二步:新建一个泛型类

package cn.wcyf.wcai.common;import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;import java.io.Serializable;/*** created by mero on 2018/3/13.<br>*/
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class ResponseObject<T> implements Serializable{private Integer code;private String msg;private T data;private ResponseObject(int code){this.code  = code;}private ResponseObject(int code, String msg){this.code = code;this.msg = msg;}private ResponseObject(int code, String msg, T data){this.code = code;this.msg = msg;this.data = data;}private ResponseObject(int code, T data){this.code = code;this.data  = data;}public void setStatus(int code){this.code = code;}public int getStatus(){return code;}public void setMsg(String msg){this.msg = msg;}public String getMsg(){return msg;}public void setData(T data){this.data = data;}public T getData(){return data;}public static <T> ResponseObject<T> createSuccessfulResp(){return  new ResponseObject<T>(ResponseCode.SUCCESS.getCode());}private static  <T> ResponseObject<T> createSuccessfulResp(String msg){return new ResponseObject<T>(ResponseCode.SUCCESS.getCode(),msg);}public static  <T> ResponseObject<T> createSuccessfulResp(String msg,T data){return new ResponseObject<T>(ResponseCode.SUCCESS.getCode(),msg,data);}public static  <T> ResponseObject<T> createSuccessfulResp(T data){return new ResponseObject<T>(ResponseCode.SUCCESS.getCode(),data);}public <T> ResponseObject<T> createErrorResp(){return new ResponseObject<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());}public static  <T> ResponseObject<T> createErrorResp(String msg){return new ResponseObject<T>(ResponseCode.ERROR.getCode(),msg);}public static  <T> ResponseObject<T> createErrorResp(int code,String desc){return  new ResponseObject<T>(code,desc);}public static <T> ResponseObject<T> createDescAndCodeResp(String desc,int code){return new ResponseObject<T>(code,desc);}@JsonIgnorepublic boolean isSuccess(){return  this.code == ResponseCode.SUCCESS.getCode();}}

第三步:测试

在controller中编写一个函数测试

 /*** 通过id查询指定学生信息* @param id* @return*/@GetMapping("/{id}")public ResponseObject<Student> getById(@PathVariable Integer id){if(id==10||id==11){return ResponseObject.createSuccessfulResp(ResponseCode.SUCCESS.getDesc(),studentService.getById(id));}return ResponseObject.createErrorResp(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDesc());}

测试结果如下:

关键字:第十五节:学习Springboot 的响应结果封装(自学Spring boot 3.x的第四天)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: