springboot全局返回结果封装resultful

泛型类封装的resultful

1.新建R类

/**
 * @Auther liang
 * @Description 统一返回的resultful
 * @Date 2020/3/3 17:09
 **/
public class R<T> implements Serializable {
     

	private static final long serialVersionUID = 1L;

	public static final int NO_LOGIN = -1;

	public static final int SUCCESS = 0;

	public static final int FAIL = 1;

	public static final int NO_PERMISSION = 2;

	private String msg = "success";

	private int code = SUCCESS;

	private T data;

	public R() {
     
		super();
	}

	public R(T data) {
     
		super();
		this.data = data;
	}

	public R(T data, String msg) {
     
		super();
		this.data = data;
		this.msg = msg;
	}

	public R(T data, int code) {
     
		super();
		this.data = data;
		this.code = code;
	}

	public R(Throwable e) {
     
		super();
		this.msg = e.getMessage();
		this.code = FAIL;
	}

	public String getMsg() {
     
		return msg;
	}

	public void setMsg(String msg) {
     
		this.msg = msg;
	}
	public int getCode() {
     
		return code;
	}

	public void setCode(int code) {
     
		this.code = code;
	}

	public T getData() {
     
		return data;
	}

	public void setData(T data) {
     
		this.data = data;
	}
}

2.controller返回结果写法

@RestController
@RequestMapping(value = "/api/v1")
@Slf4j
public class DemoController {
     
	/**
	 * @return R<>
	 * @Author liang
	 * @Description
	 * @Date 17:04 2020/3/3
	 * @Param []
	 **/
	@ExceptionHandler(Exception.class)
	@RequestMapping(value = "/getData", method = RequestMethod.GET)
	public R<String> getData() {
     
		return new R<String>("返回结果");
	}

其中R中的泛型T为实际返回结果的类型。例如:基本类型、实体类等。

3.返回结果

{
     
    "msg": "success",
    "code": 0,
    "data":"返回结果"
}

以上如有不正确的地方,请大家指出改正!

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