spring boot (1) 自定义响应数据结构
2023-09-11 14:22:18 时间
定义一个公共的类 写一个class
package com.utils; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.ObjectMapper; /** * * @Title: IMOOCJSONResult.java * @Package com.imooc.utils * @Description: 自定义响应数据结构 * 本类可提供给 H5/ios/安卓/公众号/小程序 使用 * 前端接受此类数据(json object)后,可自行根据业务去实现相关功能 * * 200:表示成功 * 500:表示错误,错误信息在msg字段中 * 501:bean验证错误,不管多少个错误都以map形式返回 * 502:拦截器拦截到用户token出错 * 555:异常抛出信息 * 556: 用户qq校验异常*/ public class IMOOCJSONResult { // 定义jackson对象 private static final ObjectMapper MAPPER = new ObjectMapper(); // 响应业务状态 private Integer status; // 响应消息 private String msg; // 响应中的数据 private Object data; @JsonIgnore private String ok; // 不使用 public static IMOOCJSONResult build(Integer status, String msg, Object data) { return new IMOOCJSONResult(status, msg, data); } public static IMOOCJSONResult build(Integer status, String msg, Object data, String ok) { return new IMOOCJSONResult(status, msg, data, ok); } public static IMOOCJSONResult ok(Object data) { return new IMOOCJSONResult(data); } public static IMOOCJSONResult ok() { return new IMOOCJSONResult(null); } public static IMOOCJSONResult errorMsg(String msg) { return new IMOOCJSONResult(500, msg, null); } public static IMOOCJSONResult errorMap(Object data) { return new IMOOCJSONResult(501, "error", data); } public static IMOOCJSONResult errorTokenMsg(String msg) { return new IMOOCJSONResult(502, msg, null); } public static IMOOCJSONResult errorException(String msg) { return new IMOOCJSONResult(555, msg, null); } public static IMOOCJSONResult errorUserQQ(String msg) { return new IMOOCJSONResult(556, msg, null); } public IMOOCJSONResult() { } public IMOOCJSONResult(Integer status, String msg, Object data) { this.status = status; this.msg = msg; this.data = data; } public IMOOCJSONResult(Integer status, String msg, Object data, String ok) { this.status = status; this.msg = msg; this.data = data; this.ok = ok; } public IMOOCJSONResult(Object data) { this.status = 200; this.msg = "OK"; this.data = data; } public Boolean isOK() { return this.status == 200; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public String getOk() { return ok; } public void setOk(String ok) { this.ok = ok; } }
使用它:先引入
@Autowired private UserService userService; @GetMapping("/usernameIsExist") public IMOOCJSONResult usernameIsExist(@RequestParam String username) { // 1. 判断用户名不能为空 if (StringUtils.isBlank(username)) { return IMOOCJSONResult.errorMsg("用户名不能为"); } // 2. 查找注册的用户名是否存在 boolean isExist = userService.queryUsernameIsExist(username); if (isExist) { return IMOOCJSONResult.errorMsg("用户名已经存在"); } // 3. 请求成功,用户名没有重复 return IMOOCJSONResult.ok(); }
postman 测试:
相关文章
- 如何在Spring boot中修改默认端口
- Spring整体架构
- Spring 创建Bean的实例的3种方式
- Spring Boot + @Async =?
- 《Spring Boot官方指南》(二)入门(一)
- 《深入实践Spring Boot》一第1章Spring Boot入门1.1 配置开发环境
- Spring: @ControllerAdvice & @ResponseBodyAdvice
- 实用操作--迁移到Spring Boot 3 和 Spring 6 需要关注的JAVA新特性
- Spring AOP中@Pointcut切入点表达式
- Spring Boot Actuator详解与漏洞利用
- 注意:Spring Boot 2.7开始spring.factories不推荐使用了,接下来这么玩...
- Spring Boot 2 中的默认日志管理与 Logback 配置详解
- Spring Boot中使用PostgreSQL数据库
- Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用?
- spring 容器技术入门
- 基于Java(Spring+SpringMVC+MyBatis)+MySQL实现的毕业设计管理系统【100010487】
- Spring Boot(七) 之前后端交互
- 江帅帅:Spring Boot 底层级探索系列 01- 搭建项目
- spring boot事件如何使用
- Spring Boot应用启动原理分析(转)
- Spring Boot RabbitMQ 应用场景
- Spring Boot 2 实战: 自定义 Servlet Filter 的两种方式
- Spring Boot—16日志设置
- Java使用RabbitMQ之整合Spring(生产者)
- Spring源码 Gradle编译Spring源码
- Spring Boot自动装配原理
- Spring启动报错org.springframework.boot.builder.SpringApplicationBuilder
- 玩转spring boot——简单登录认证
- spring data redis使用示例
- spring mvc DispatcherServlet详解之一---处理请求深入解析(续)
- spring boot定制Jackson ObjectMapper,为什么不生效
- Spring 的@Required注释