在开发项目时,都会封装一些工具类,进行工具类的封装。这些工具类使我们的代码看起来像史诗般优雅,当然,这些工具类也在不断的优化,力求达到简洁、优雅。本篇文章是对返回结果的统一格式化封装。如有不足之处欢迎指出批评! 枚举类 ResponseCodeEnums.eum
@Getter
@AllArgsConstructor
public enum ResponseCodeEnums {
/**
* 成功
*/
SUCCESS(200, "success"),
/**
* 失败
*/
FAIL(500, "failed"),
HTTP_STATUS_200(200, "操作成功"),
HTTP_STATUS_400(400, "请求方法错误"),
HTTP_STATUS_401(401, "no authentication"),
HTTP_STATUS_403(403, "没有权限"),
HTTP_STATUS_500(500, "系统内部错误");
private final int code;
private final String message;
}
工具类ResultUtils.java
@Data
public class ResultUtils<T> {
/**
* 状态码
*/
protected int code;
/**
* 响应信息
*/
protected String message;
/**
* 返回数据
*/
private T data;
public static <T> ResultUtils<T> success() {
return new ResultUtils<>();
}
public static <T> ResultUtils<T> success(T data) {
return new ResultUtils<>(data);
}
public static <T> ResultUtils<T> fail(String message) {
return new ResultUtils<>(ResponseCodeEnums.FAIL.getCode(), message);
}
public ResultUtils() {
this.code = ResponseCodeEnums.SUCCESS.getCode();
this.message = ResponseCodeEnums.SUCCESS.getMessage();
}
public ResultUtils(ResponseCodeEnums statusEnums) {
this.code = statusEnums.getCode();
this.message = statusEnums.getMessage();
}
/**
* 若没有数据返回,可以人为指定状态码和提示信息
*/
public ResultUtils(int code, String msg) {
this.code = code;
this.message = msg;
}
/**
* 有数据返回时,状态码为200,默认提示信息为“操作成功!”
*/
public ResultUtils(T data) {
this.data = data;
this.code = ResponseCodeEnums.SUCCESS.getCode();
this.message = ResponseCodeEnums.SUCCESS.getMessage();
}
/**
* 有数据返回,状态码为 200,人为指定提示信息
*/
public ResultUtils(T data, String msg) {
this.data = data;
this.code = ResponseCodeEnums.SUCCESS.getCode();
this.message = msg;
}
}
在项目中引入方法如下
@GetMapping("expireDate")
public ResultUtils<String> expireDate() throws ParseException {
String time = "2024-02-01 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
Date expireTime = sdf.parse( time );
Date currentDate = new Date();
if(expireTime.before(currentDate)){
log.info("您已过期,请续费");
return ResultUtils.success("已过期");
}
return ResultUtils.success("可以继续访问");
}
这便是封装result的全过程,希望对你会有帮助!