1、创建枚举类
自定义实例变量和构造方法,生成枚举
package com.lian.internalcommon.constant;
import lombok.Getter;
public enum CommonStatusEnum {
/**
* 操作成功
*/
SUCCESS(200, "success"),
/**
* 操作异常
*/
INTERNAL_SERVER_EXCEPTION(-1, "exception"),
/**
* 操作失败
*/
FAIL(1, "fail");
//自动生成get方法
@Getter
private final int code;
@Getter
private final String value;
private CommonStatusEnum(int code, String value) {
this.code = code;
this.value = value;
}
}
2、创建通用返回值类
package com.lian.internalcommon.dto;
import java.io.Serializable;
import com.lian.internalcommon.constant.CommonStatusEnum;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 此类专门做通用统一的返回值类型,替代Sring
* @Data 等价于 @Setter、@Getter、@RequiredArgsConstructor、@ToString、@EqualsAndHashCode
*/
@Data
/**
* 开启链式编程,设置为true,则setter方法返回当前对象
*/
@Accessors(chain = true)
/**
* 抑制所有异常
* 所有接口的返回值类型是 ResponseResult
*/
@SuppressWarnings("all")
public class ResponseResult<T> implements Serializable {
//设置常量盐值
private static final long serialVersionUID = 52646L;
/**
* 定义成员变量,一般返回值固定写法,不同数据类型的返回码和消息
*/
private int code;
private String message;
private T data;
/**
* 返回成功数据(status:1)
*
* @param data 数据内容
* @param <T> 数据类型
* @return ResponseResult实例
*/
public static <T> ResponseResult success(T data) {
return new ResponseResult()
.setCode(CommonStatusEnum.SUCCESS.getCode())
.setMessage(CommonStatusEnum.SUCCESS.getValue())
.setData(data);
}
/**
* 返回错误数据(status:500)
*
* @param data 错误内容
* @param <T> 数据类型
* @return ResponseResult实例
*/
public static <T> ResponseResult fail(T data) {
return new ResponseResult()
.setCode(CommonStatusEnum.INTERNAL_SERVER_EXCEPTION.getCode())
.setMessage(CommonStatusEnum.INTERNAL_SERVER_EXCEPTION.getValue())
.setData(data);
}
/**
* 自定义返回错误数据
*
* @param code 错误代码
* @param message 错误消息
* @return ResponseResult实例
*/
public static ResponseResult fail(int code, String message) {
return new ResponseResult()
.setCode(code)
.setMessage(message);
}
}
从此所有类的返回值类型就可以统一为ResponseResult,替代最原始的String作为返回值类型