1、统一返回结果类:
1.1:public static <T> R<T> success(T object)的解释:
<T>:为表名这个方法为泛型方法。
R<T>:表示返回的类型。
1.2:因为这个类已经在创建时就注明了泛型,所以不需要声明泛型方法, 对于带了static的方法,它并不属于类的一部分,所以相当于没有声明<T>的类,所以需要声明为泛型方法.
package com.laoyang.waimai.common;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class R<T> {
/**
* 通用返回结果,服务器响应的数据都会封装成此对象
*/
private Integer code; //编码:1成功,0和其它数字为失败
private String msg; //错误信息
private T data; //数据
private Map map = new HashMap(); //动态数据
public static <T> R<T> success(T object) {
R<T> r = new R<T>();
r.data = object;
r.code = 1;
return r;
}
public static <T> R<T> error(String msg) {
R r = new R();
r.msg = msg;
r.code = 0;
return r;
}
public R<T> add(String key, Object value) {
this.map.put(key, value);
return this;
}
}
2.在类名上的属性。
@JsonInclude(JsonInclude.Include.NON_NULL)//如果后端返回null,就把null过滤掉,不返回前端
3.枚举:就是类的叠加,在原来的基础上限制属性的接受内容。
比如用户表中有个code属性,可以通过枚举来实现code的规范性。代码如下:
package com.laoyang.common;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
/**
* @author:Kevin
* @create: 2022-08-25 10:25
* @Description: 统一结果返回集
*/
@JsonInclude(JsonInclude.Include.NON_NULL)//如果后端返回null,就把null过滤掉,不返回前端
@AllArgsConstructor
@Data
public class R<T> implements Serializable {
private int code;
private String message;
private T data;
private R(int code){
this.code=code;
}
private R(int code,String message){
this.code=code;
this.message=message;
}
private R(int code,T data){
this.code=code;
this.data=data;
}
@JsonIgnore
public Boolean isSuccess(){
return this.code == Code.SUCCESS.getCode();
}
public static <T> R<T> success(){
return new R<>(Code.SUCCESS.getCode());
}
public static <T> R<T> successMsg(String message){
return new R<>(Code.SUCCESS.getCode(),message);
}
public static <T> R<T> successData(T data){
return new R<>(Code.SUCCESS.getCode(),data);
}
public static <T> R<T> successData(String message,T data){
return new R<>(Code.SUCCESS.getCode(),message,data);
}
public static <T> R<T> error(){
return new R<>(Code.ERROR.getCode(),Code.ERROR.getDesc());
}
public static <T> R<T> error(String errorMsg){
return new R<>(Code.ERROR.getCode(),errorMsg);
}
public static <T> R<T> error(int code,String errorMsg){
return new R<>(code,errorMsg);
}
}
3.2code枚举实现:
package com.laoyang.common;
/**
* 限制属性的接受内容
*/
public enum Code {
SUCCESS(20000,"SUCCESS"),
ERROR(1,"ERROR");
private final int code;
private final String desc;
Code(int code,String desc){
this.code=code;
this.desc=desc;
}
public int getCode(){
return code;
}
public String getDesc(){
return desc;
}
}