-
统一结果返回
-
统一结果的一般形式
-
结果类枚举
-
统一结果类
-
控制层返回
-
-
统一异常处理
-
@ControllerAdvice
-
自定义全局异常类
-
统一异常处理器
-
控制层展示
-
-
统一日志收集
-
Logback
-
配置
-
日志收集异常信息
-
统一结果返回
目前的前后端开发大部分数据的传输格式都是json,因此定义一个统一规范的数据格式有利于前后端的交互与UI的展示。
统一结果的一般形式
-
是否响应成功;
-
响应状态码;
-
状态码描述;
-
响应数据
-
其他标识符
-
结果类枚举
-
前三者可定义结果枚举,如:success,code,message
-
@Getter public enum ResultCodeEnum { SUCCESS(true,20000,"成功"), UNKNOWN_ERROR(false,20001,"未知错误"),, PARAM_ERROR(false,20002,"参数错误"), ; // 响应是否成功 private Boolean success; // 响应状态码 private Integer code; // 响应信息 private String message; ResultCodeEnum(boolean success, Integer code, String message) { this.success = success; this.code = code; this.message = message; } }
统一结果类
-
第5个属于自定义返回,利用前4者可定义统一返回对象
-
注意:
-
外接只可以调用统一返回类的方法,不可以直接创建,影刺构造器私有;
-
内置静态方法,返回对象;
-
为便于自定义统一结果的信息,建议使用链式编程,将返回对象设类本身,即return this;
-
响应数据由于为json格式,可定义为JsonObject或Map形式;
-
@Data public class R { private Boolean success; private Integer code; private String message; private Map<String, Object> data = new HashMap<>(); // 构造器私有 private R(){} // 通用返回成功 public static R ok() { R r = new R(); r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess()); r.setCode(ResultCodeEnum.SUCCESS.getCode()); r.setMessage(ResultCodeEnum.SUCCESS.getMessage()); return r; } // 通用返回失败,未知错误 public static R error() { R r = new R(); r.setSuccess(ResultCodeEnum.UNKNOWN_ERROR.getSuccess()); r.setCode(ResultCodeEnum.UNKNOWN_ERROR.getCode()); r.setMessage(ResultCodeEnum.UNKNOWN_ERROR.getMessage()); return r; } // 设置结果,形参为结果枚举 public static R setResult(ResultCodeEnum result) { R r = new R(); r.setSuccess(result.getSuccess()); r.setCode(result.getCode()); r.setMessage(result.getMessage()); return r; } /**------------使用链式编程,返回类本身-----------**/ // 自定义返回数据 public R data(Map<String,Object> map) { this.setData(map); return this; } // 通用设置data public R data(String key,Object value) { this.data.put(key, value); return this; } // 自定义状态信息 public R message(String message) { this.setMessage(message); return this; } // 自定义状态码 public R code(Integer code) { this.setCode(code); return this; } // 自定义返回结果 public R success(Boolean success) { this.setSuccess(success); return this; } }
控制层返回
-
视图层使用统一结果
-
@RestController @RequestMapping("/api/v1/users") public class TeacherAdminController { @Autowired private UserService userService; @GetMapping public R list() { List<Teacher> list = teacherService.list(null); return R.ok().data("itms", list).message("用户列表"); } }
-
json结果
-
{ "success": true, "code": 20000, "message": "查询用户列表", "data": { "itms": [ { "id
-
Java项目构建基础:统一结果,统一异常,统一日志
最新推荐文章于 2024-04-17 09:30:51 发布
统一结果返回统一结果的一般形式结果类枚举统一结果类控制层返回统一异常处理@ControllerAdvice自定义全局异常类统一异常处理器控制层展示统一日志收集Logback配置日志收集异常信息是否响应成功;响应状态码;状态码描述;响应数据其他标识符前三者可定义结果枚举,如:success,code,message 统一结果类 第5个属于自定义返回,利用前4者可定义统一返回对象注意:外接只可以调用统一返回类的方法,不可以直接创建,影刺构造器私有;内置静态方法,返回对象;为便于自定义统一
摘要由CSDN通过智能技术生成