import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AxiosResult<T>{
private int status;
private String message;
private T data;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public AxiosResult(EnumStatus enumStatus, T data) {
this.status = enumStatus.getStatus();
this.message = enumStatus.getMessage();
this.data = data;
}
private static <T> AxiosResult<T> getAxiosResult(EnumStatus enumStatus, T data){
return new AxiosResult<T>(enumStatus,data);
}
public static <T> AxiosResult<T> success(T data){
return getAxiosResult(EnumStatus.OK,data);
}
public static <T> AxiosResult<T> error(T data){
return getAxiosResult(EnumStatus.ERROR,data);
}
public static <T> AxiosResult<T> success(EnumStatus enumStatus,T data){
return getAxiosResult(enumStatus,data);
}
public static <T> AxiosResult<T> error(EnumStatus enumStatus,T data){
return getAxiosResult(enumStatus,data);
}
}
public enum CustomEnum {
OK(2000,"操作成功"),
ERROR(4000,"操作失败"),
USERNAME_ERROR(4004,"用户名错误"),
PASSWORD_ERROR(4000,"密码错误"),
NO_LOGIN(4002,"未登录"),
;
private int Status;
private String message;
public int getStatus() {
return Status;
}
public void setStatus(int status) {
Status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
CustomEnum(int status, String message) {
Status = status;
this.message = message;
}
}
import com.qy28.sm.http.CustomEnum;
public class MyException extends RuntimeException {
private CustomEnum customEnum;
public MyException(CustomEnum customEnum) {
this.customEnum = customEnum;
}
public CustomEnum getCustomEnum() {
return customEnum;
}
public void setCustomEnum(CustomEnum customEnum) {
this.customEnum = customEnum;
}
}
import com.qy28.sm.http.AjaxResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class MyExceptionHandler {
@ExceptionHandler(MyException.class)
public AjaxResult myHandler(MyException myexception){
return AjaxResult.error(myexception.getCustomEnum());
}
}