为什么使用

项目中我们会将响应封装成JSON返回,一般我们会将所有接口的数据格式统一, 使前端对数据的操作更一致、轻松。 一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数 据就可以。但是一般会包含状态码、返回消息、数据这几部分内容

一. 统一返回数据格式

{"success": 布尔, //响应是否成功"code": 数字, //响应码"message": 字符串, //返回消息"data": HashMap //返回数据,放在键值对中
}

二 . 创建统一结果返回类

  • 抽取出来作为公共部分

1. 创建公共部分模块Common

2. 创建接口定义返回码 也可使用枚举 也可以不定义,直接写入

public interface ResultCode {public static Integer SUCCESS = 20000;public static Integer ERROR = 20001;
}

3. 创建结果类

//统一返回结果的类
@Data
public class R {@ApiModelProperty(value = "是否成功")private Boolean success;@ApiModelProperty(value = "返回码")private Integer code;@ApiModelProperty(value = "返回消息")private String message;@ApiModelProperty(value = "返回数据")private Map<String, Object> data = new HashMap<String, Object>();//把构造方法私有   不让别人new该类private R() {}//实现链式编程//R.ok().code().message().data();//成功静态方法public static R ok() {R r = new R();r.setSuccess(true);r.setCode(ResultCode.SUCCESS);r.setMessage("成功");return r;}//失败静态方法public static R error() {R r = new R();r.setSuccess(false);r.setCode(ResultCode.ERROR);r.setMessage("失败");return r;}public R success(Boolean success){this.setSuccess(success);return this;   //返回this  实现链式编程}//实现链式编程//R.ok().code().message().data();public R message(String message){this.setMessage(message);return this;}public R code(Integer code){this.setCode(code);return this;}public R data(String key, Object value){this.data.put(key, value);return this;}public R data(Map<String, Object> map){this.setData(map);return this;}
}

4. 项目结构

三. 使用

1.在使用的包中先导依赖

2.接口方法返回结果都改为R(导包时记得引对)

// 1 查询所有数据@GetMapping("findAll")public R findAllTeacher(){//调用service的方法实现查询所有的操作List<EduTeacher> list = teacherService.list(null);return R.ok().data("items",list); //链式编程}
// 2. 逻辑删除方法@DeleteMapping("{id}")public R removeTeacher(@PathVariable String id){boolean flag = teacherService.removeById(id);if(flag){return R.ok();}elsereturn R.error();}

Java统一返回类型R相关推荐

  1. java协变返回类型_Java中的协变返回类型

    java协变返回类型 协变返回类型 (Covariant return type) The covariant return type is that return type which may va ...

  2. 后台接口统一返回类型-ResponseBodyAdvice

    思路 1.自定义一个注解@ResponseResult用于在方法或者类上面标注,标识这个接口需要包装数据 2.拦截请求.判断此请求是否被@ResponseResult注解标注 3.实现接口Respon ...

  3. Java 统一返回结果集封装

    Java 统一返回结果集封装 封装实体类 调用 封装实体类 /*** 统一返回结果集实体类* @param <T> 返回数据对象*/ @Data public class ErrorMsg ...

  4. java 需要返回类型_在Java中,当一个方法不需要返回数据时返回类型必须是

    [问答题]在滑动轴承中什么是瓦背?其特点有哪些? [多选题]起重机采用变频调速改造后,有哪些效果? [判断题]当热继电器动作不准确时,可用弯折双金属片的方法来调整. [单选题]X62W型万能铣床进给电 ...

  5. java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement

    无返回值函数 对于返回类型是void的函数,return后不跟表达式.最后的 return; 可以没有而让程序隐式执行.在void函数中的return语句还有提前使函数退出的作用而不进行接下来的计算, ...

  6. java invoke 返回类型_解析Java反射 - invoke方法

    最近工作中涉及到获取同程火车票,大概描述为:将本地获取的发出城市,目的城市及出发时间按固定格式封装,调用接口获取可乘坐座席等级最高的火车票,接口返回数据用包含三层类封装的类接受,接受的类总共为四层,倒 ...

  7. java统一返回结果集封装,解决No converter found for return value of type

    网上很多,自己参照手写了一个. package com.***.pro.utils;/*** @Author: wsh*/public class Result<T> {private B ...

  8. java purge_springboot之全局处理统一返回

    springboot之全局处理统一返回 简介 在REST风格的开发中,避免通常会告知前台返回是否成功以及状态码等信息.这里我们通常返回的时候做一次util的包装处理工作,如:Result类似的类,里面 ...

  9. Spring MVC控制层的返回类型--String类型与Bean类型

    SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明. 一.测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java ...

最新文章

  1. 图像金字塔与resize函数
  2. shell 脚本 进行sqlite3初始化
  3. [导入]如何禁止掉SharePoint页面个性化?(续)
  4. 一、flask的基本使用-flask
  5. STM32开发 -- UCOSII
  6. MySQL数据库篇之初识数据库
  7. 空间谱专题16:信号个数估计
  8. java foreach 跳过本次循环_【Java】对foreach循环的思考
  9. [WCF] - 使用 [DataMember] 标记的数据契约需要声明 Set 方法
  10. 初中生学计算机视频,推荐一下适合中学生的在线视频学习网站
  11. LeetCode 535. Encode and Decode TinyURL
  12. jquery 父元素相邻元素_Jquery中几种查找节点的方法
  13. 中英文计算机核心期刊目录
  14. c语言程序求对称矩阵,C语言经典算法上三角下三角对称矩阵
  15. 计算机系统应用 莫军,Configuration tool for ARINC 653 operating systems
  16. vcm驱动芯片原理_手机Cam和era模组及VCM与VCMDriver介绍.pptx
  17. 四大组件之Service(服务)
  18. 渐变背景和背景图片并存
  19. 文献(7): 在非小细胞肺癌中,浆细胞signature可用于PD-L1免疫治疗的响应预测
  20. SSM框架之Mybatis同时传入多个对象及普通参数

热门文章

  1. Synopsys逻辑工艺库(DC综合)
  2. python一般要学几年_怎么自学python,大概要多久?
  3. 腾然教育MCN覃小龙公子:覃宣量2022年2岁10个月亲子照
  4. iOS--app自定义相册--创建相簿,存储图片到手机
  5. 抗议信用卡霸王条款,有关最低还款的注意事项
  6. php蔬菜农村电商系统_农产品电子商务网站开发(PHP+MySQL+JavaScriptHTML)
  7. qtcreator5很卡解决方法
  8. IxChariot测试路由LAN到WAN和WAN到LAN吞吐量操作指南
  9. 四款经典3.7v锂电池充电电路图详解 - 全文锂电池的内部结构所致,必须保留一部分锂离子在负极,锂电池不能过放电
  10. 被遗忘的图灵:一文溯源AI研究(附下载)