SpringBoot项目通用返回类(result风格开发,完善前后端分离开发)

SpringBoot项目通用返回类(新人进阶)

在日常的项目当中,尤其在前后端分离项目当中一般会有固定的返回类,便于前后端的交互。

  1. 先构建一个格式确定下来的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;


}
  1. 构建常用枚举类,内容根据项目或者公司需求可以自定义。
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;
    }
}
  1. controller层测试
 /*测试返回体*/
    @GetMapping("/test")
        @ResponseBody
    public R test(){
     
        String str="相信未来";
        return RUtils.success(str);
    }
  1. 测试结果
    SpringBoot项目通用返回类(result风格开发,完善前后端分离开发)_第1张图片
  2. 项目实际测试
    这里是简单的单表查询业务,成功则返回工具类成功信息以及返回的参数。失败则返回失败信息。
 /*模拟需要登录后的业务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());
        }

    }
  1. 测试结果
    成功时:
    SpringBoot项目通用返回类(result风格开发,完善前后端分离开发)_第2张图片
    失败时: SpringBoot项目通用返回类(result风格开发,完善前后端分离开发)_第3张图片
    各有不同,仅供参考。

你可能感兴趣的:(SpringBoot,java)