SpringBoot项目通用返回类
在日常的项目当中,尤其在前后端分离项目当中一般会有固定的返回类,便于前后端的交互。
- 先构建一个格式确定下来的Result类。
package com.ss.jwt.R;
import lombok.Data;
import java.io.Serializable;
/**
* @version V1.0
* @Package com.ss.jwt.R
* @author: Liu
* @Date: 10:21
*/
@Data
public class R<T> {
/*返回体*/
private Integer code;
private String msg;
private T data;
}
- 构建常用枚举类,内容根据项目或者公司需求可以自定义。
package com.ss.jwt.R;
import lombok.Data;
/**
* @version V1.0
* @Package com.ss.jwt.R
* @author: Liu
* @Date: 10:36
*/
//枚举类
public enum Renum {
//这里是可以自己定义的,方便与前端交互即可
UNKNOWN_ERROR(-1,"未知错误"),
SUCCESS(10000,"成功"),
USER_NOT_EXIST(1,"用户不存在"),
USER_IS_EXISTS(2,"用户已存在"),
DATA_IS_NULL(3,"数据为空"),
;
private Integer code;
private String msg;
Renum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
`
3. 工具类,用来写返回信息
package com.ss.jwt.utils;
import com.ss.jwt.R.R;
import com.ss.jwt.R.Renum;
import com.sun.org.apache.bcel.internal.generic.NEW;
/**
* @version V1.0
* @Package com.ss.jwt.utils
* @author: Liu
* @Date: 10:39
*/
public class RUtils {
/*成功,且返回体有数据*/
public static R success(Object object) {
R r = new R();
r.setCode(Renum.SUCCESS.getCode());
r.setMsg(Renum.SUCCESS.getMsg());
r.setData(object);
return r;
}
//成功,但返回体没数据
public static R success(){
return success(null);
}
//失败返回信息
public static R Err(Integer code,String msg){
R r = new R();
r.setCode(code);
r.setMsg(msg);
return r;
}
}
- controller层测试
/*测试返回体*/
@GetMapping("/test")
@ResponseBody
public R test(){
String str="相信未来";
return RUtils.success(str);
}
- 测试结果
- 项目实际测试
这里是简单的单表查询业务,成功则返回工具类成功信息以及返回的参数。失败则返回失败信息。
/*模拟需要登录后的业务2*/
@GetMapping("/api/findById")
public R findById(){
Student student = studentService.findById();
if(student!=null){
return RUtils.success(student);
}else {
return RUtils.Err(Renum.UNKNOWN_ERROR.getCode(),Renum.UNKNOWN_ERROR.getMsg());
}
}
- 测试结果
成功时:
失败时:
各有不同,仅供参考。