在开发基于Spring Boot的应用程序时,统一结果封装是一个非常有用的技术,特别是在生产项目中,它可以帮助我们每个团队成员输出统一的结果格式,提高代码的可维护性和可读性。
在Spring Boot应用中实现统一结果封装通常包括以下几个步骤:
首先,我们需要创建一个统一的结果封装类,用于包装接口返回的结果。这个类通常包括状态码、消息、数据和时间戳字段:java
代码解读复制代码package com.one.pojian.entity.base;
import lombok.Data;
/**
* @description:结果统一封装
* @version: $
*/
@Data
public class Result {
private String code;
private String message;
private Object data;
private Long timeStamp;
public static Result initResult(ResultCode resultCode) {
Result result = new Result();
result.setCode(resultCode.getCode());
result.setMessage(resultCode.getMessage());
result.setTimeStamp(System.currentTimeMillis());
return result;
}
public static Result success() {
Result result = Result.initResult(ResultCode.SUCCESS);
return result;
}
public static Result success(Object data) {
Result result = Result.initResult(ResultCode.SUCCESS);
result.setData(data);
return result;
}
public static Result fail() {
Result result = Result.initResult(ResultCode.FAILURE);
return result;
}
public static Result fail(ResultCode resultCode) {
Result result = Result.initResult(resultCode);
return result;
}
}
在统一结果封装中,通常会定义一个状态枚举类来表示接口返回结果的状态。这样可以统一管理接口返回的状态码和状态信息,提高代码的可读性和可维护性。java
代码解读复制代码package com.one.pojian.entity.base;
import lombok.Getter;
@Getter
public enum ResultCode {
SUCCESS("00000", "请求成功"),
FAILURE("99999", "请求失败"),
EMPTY_PARAM("A0410", "请求必填参数为空");
private String code;
private String message;
ResultCode(String code, String message) {
this.code = code;
this.message = message;
}
}
测试方法:kotlin
代码解读复制代码@RequestMapping("/testFail")
public Result testFail() {
return Result.fail(ResultCode.EMPTY_PARAM);
}
测试结果json
代码解读复制代码{
"code": "A0410",
"message": "请求必填参数为空",
"data": null,
"timeStamp": 1713352769949
}