IntelliJ+SpringBoot项目实战(八)--在控制层API中封装响应数据包

devtools/2024/11/14 22:05:14/
在控制层类的接口中一般需要返回响应结果的数据包,如果采用接口返回类型设置为JSONObject,比如

public JSONObject getUserList...){

    JSONObject  json = new JSONObject();

    

}

通过使用json.put("","")的方式手工设置返回值会比较繁琐,这种情况可以实现一个通用的响应类来封装返回的业务数据,在封装过程中同时把返回的code、message配置在响应的数据包中。

在openjweb-common模块的org.openjweb.common.response下创建一个响应类ResponseResult:

import java.io.Serializable;
import java.util.HashMap;/*** 通用的结果返回类* @param <T>*/
public class ResponseResult<T> implements Serializable {private Integer code;private String msg="操作成功";private T data;public ResponseResult() {this.code = 0;}public ResponseResult(Integer code, T data) {this.code = code;this.data = data;}public ResponseResult(Integer code, String msg, T data) {this.code = code;this.msg = msg;this.data = data;}public ResponseResult(Integer code, String msg) {this.code = code;this.msg = msg;this.data = (T)new HashMap();}public static ResponseResult errorResult(int code, String msg) {ResponseResult result = new ResponseResult();return result.error(code, msg);}public static ResponseResult okResult(int code, String msg) {ResponseResult result = new ResponseResult();return result.ok(code, new HashMap<>(), msg);}public static ResponseResult okResult(Object data) {ResponseResult result = new ResponseResult();return result.ok(data);}public ResponseResult<?> error(Integer code, String msg) {this.code = code;this.msg = msg;this.data = (T) new HashMap();return this;}public ResponseResult<?> ok(Integer code, T data) {this.code = code;this.data = data;return this;}public ResponseResult<?> ok(Integer code, T data, String msg) {this.code = code;this.data = data;this.msg = msg;return this;}public ResponseResult<?> ok(T data) {this.data = data;return this;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;}}

在openjweb-sys中引入openjweb-common依赖:

<dependency><groupId>org.openjweb</groupId><artifactId>openjweb-common</artifactId><version>0.0.1-SNAPSHOT</version>
</dependency>

 现在在前面章节的openjweb-sys模块的org.openjweb.sys.api包的DemoDBApi.java中增加一个使用ResponseResult封装的返回结结果的示例:

@GetMapping("queryUser2")public ResponseResult getStudent(){CommUser user = new CommUser();user.setLoginId("abao");user.setRealName("王先生");user.setUserSex("男");return ResponseResult.okResult(user);
}

启动openjweb-sys模块的application后,在浏览器中输入测试URL:

http://localhost:8001/demo/queryUser2

页面返回:

{"code":0,"msg":"操作成功","data":{"loginId":"abao","username":null,"realName":"王先生","userSex":"男"}},如果返回错误,可以使用errorResult方法,在实际项目中可以进一步完善resultResult类。

项目代码见Github: https://github.com/openjweb/cloud/tree/master

 


http://www.ppmy.cn/devtools/134008.html

相关文章

图形 2.6 伽马校正

伽马校正 B站视频&#xff1a;图形 2.6 伽马校正 文章目录 伽马校正颜色空间传递函数 Gamma校正校正过程为什么需要校正&#xff1f;CRT与转换函数 为什么sRGB在Gamma 0.45空间&#xff1f; 人对亮度的敏感韦伯定律中灰值 线性工作流不在线性空间下进行渲染的问题统一到线性空…

数据库SQL——连接表达式(JOIN)图解

目录 一、基本概念 二、常见类型 内连接&#xff08;INNER JOIN&#xff09;&#xff1a; 左连接&#xff08;LEFT JOIN 或 LEFT OUTER JOIN&#xff09;&#xff1a; 右连接&#xff08;RIGHT JOIN 或 RIGHT OUTER JOIN&#xff09;&#xff1a; 全连接&#xff08;FULL…

LabVIEW导入并显示CAD DXF文件图形 程序见附件

LabVIEW导入并显示CAD DXF文件图形 程序见附件 LabVIEW导入并显示CAD DXF文件图形 程序见附件 - 北京瀚文网星科技有限公司 LabVIEW广泛应用于自动化、数据采集、图形显示等领域。对于涉及CAD图形的应用&#xff0c;LabVIEW也提供了一些方法来导入和显示CAD DXF文件&#x…

Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)

前言 本文一开始是属于此文《UMI——斯坦福刷盘机器人&#xff1a;从手持夹持器到动作预测Diffusion Policy(含代码解读)》的第三部分&#xff0c;考虑后Diffusion Policy的重要性很高&#xff0c;加之后续还有一系列基于其的改进工作 故独立成本文&#xff0c;且写的过程中 …

uni-app收藏按钮组件实现⑬

文章目录 二十一、收藏按钮组件实现一、前端处理二、云函数定义获取数据后前端处理 二十一、收藏按钮组件实现 一、前端处理 收藏图标点击事件内获取用户信息&#xff0c;及文章信息&#xff0c;传递到后端 由于多个界面中都会用到 userInfo 对象&#xff0c;可将 userInfo 对…

机器学习在网络安全中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 机器学习在网络安全中的应用 机器学习在网络安全中的应用 机器学习在网络安全中的应用 引言 机器学习概述 定义与原理 发展历程 …

【论文阅读】Virtual Compiler Is All You Need For Assembly Code Search

阅读笔记:Virtual Compiler Is All You Need For Assembly Code Search 1. 研究背景 逆向工程:逆向工程需要在庞大的二进制文件中快速定位特定功能(例如恶意行为)。传统方法依赖于经验和启发式算法,效率低下。汇编代码搜索:通过自然语言搜索汇编代码功能,能够更高效地处…

Java中的泛型

什么是泛型&#xff1f; 限制容器存储的元素类型&#xff0c;用于集合、接口、实现类中 说明&#xff1a;泛型参数在指明时&#xff0c;不可以使用基本数据类型&#xff01;不过可以使用包装类替换 案例1&#xff1a;ArrayList ArrayList<Integer> list new ArrayList…