请求响应-响应-@ResponseBody统一响应结果

news/2024/11/28 7:40:21/

@ResponseBody

  • 类型:方法注解,类注解
  • 位置:Controller方法上/类上
  • 作用:将方法返回值直接响应,如果返回类型是 实体对象/集合,将会转化为JSON格式数据后再响应
  • 说明:@RestController = @Controller + @ResponseBody

由于前端在访问不用的业务接口时,接口返回至前端的数据格式各种各样,对于整个项目来不便于管理而且很难维护。因此在项目开发过程中,我们应该设置一个统一的响应结果

统一响应结果

在Spring Boot框架中,Result类通常用于封装控制器(Controller)的响应结果。它是一种常见的设计模式,用于统一格式化返回给客户端的数据

  • Result类一般包含以下属性
    • code:表示请求处理的状态码,通常为整数值。例如,0表示成功,其它非零值表示不同类型的错误
    • message:对处理结果的简单描述或提示信息,可以根据需求提供更多更多上下文信息
    • data:实际的响应数据对象,可以是单个对象或集合,用于向客户端返回具体的业务数据。

使用Result类的好处是可以在所有控制器方法中保持一致的响应格式。例如,在请求处理成功时,可以将数据封装到Result对象的data属性中,并设置code为0,message为空或可选的成功消息。而在处理失败时,可以设置相应的错误状态码和错误消息。

以下为一个Result类的示例(具体代码如下)

package com.example.POJO;/*** 统一响应结果封装类*/
public class Result {private Integer code;//1 成功 , 0 失败private String msg; //提示信息private Object data; //数据 date// 无参构造public Result() {}// 有参构造public Result(Integer code, String msg, Object data) {this.code = code;this.msg = msg;this.data = data;}// 设置get/set方法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 Object getData() {return data;}public void setData(Object data) {this.data = data;}// 三种情况的方法public static Result success(Object data) {return new Result(1, "success", data);}public static Result success() {return new Result(1, "success", null);}public static Result error(String msg) {return new Result(0, msg, null);}// 重写toString()方法,设置返回数据格式@Overridepublic String toString() {return "Result{" +"code=" + code +", msg='" + msg + '\'' +", data=" + data +'}';}
}

Controller类具体代码为:

package com.example.Controller;import com.example.POJO.Address;
import com.example.POJO.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;/*** 测试响应数据*/
@RestController
public class ResponseController {@RequestMapping("/hello")public Result hello() {System.out.println("Hello World ~");//return new Result(1,"success","Hello World ~");// 直接调用success()方法return Result.success("Hello World ~");}@RequestMapping("/getAddr")public Result getAddr() {Address addr = new Address();addr.setProvince("广东");addr.setCity("深圳");return Result.success(addr);}@RequestMapping("/listAddr")public Result listAddr() {List<Address> list = new ArrayList<>();Address addr = new Address();addr.setProvince("广东");addr.setCity("深圳");Address addr2 = new Address();addr2.setProvince("陕西");addr2.setCity("西安");list.add(addr);list.add(addr2);return Result.success(list);}
}

在postman中进行测试,分别查看返回结果:

1.

2.

3.

 

 


http://www.ppmy.cn/news/841744.html

相关文章

EasyCVR平台Ehome协议接入,设备管理中出现新增通道按钮的问题优化

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。 有用…

苹果cms10的php.ini目录列表,使用苹果CMSV10常见问题整理官方版

常见疑问 1&#xff0c;上传失败常见问题&#xff1f; 由于采用最新的TP框架&#xff0c;需要开启php的fileinfo支持库&#xff0c;php.ini里 extensionphp_fileinfo.dll &#xff1b;宝塔等面板里直接安装开启 。 上传失败问题请检查php临时文件目录权限和cms系统文件存储目录…

苹果cms,ckplayer视频试看插件,vip会员不限制,游客或普通会员试看

效果图 完整版下载.主要是css样式表.其它核心内容.下面都讲到了 https://download.csdn.net/download/viqecel/10287298 功能介绍 默认逻辑为:需要积分才可点播的视频,才开启试看功能. 如果是vip会员组,则不受限制,本播放会员组2为vip会员组.1为普通会员组. 如果是普通会员…

使用Python下载本地的m3u8文件

1. 起因 最近有个朋友给我发了个小电影。 地址是https://xxxxxx.m3u8&#xff0c; 当我使用微信直接打开的时候是可以播放的&#xff0c;但是使用edge打开的时候却直接跳转到了下载连接里&#xff0c;无奈&#xff0c;只能下载下来一个m3u8的文件。 这边先简单解释一下什么是…

苹果cms永久免费影视建站程序

苹果CMSv10程序是一套采用PHPMYSQL环境下运行的完善而强大的快速视频建站开源系统。是国内优秀的开源PHP视频建站系统,在主流建站系统中特色鲜明,以灵活、小巧、兼容性好、负载强等优点而深受许多站长的喜爱。 开发环境&#xff1a;苹果cmsv10 UTF8mi 空间支持&#xff1a;PH…

Android动态发送广播简单例子

声明广播private BroadcastReceiver broadcastReceiver;1.发送广播 Intent intent new Intent("com.example.MY_ACTION"); intent.putExtra("message", "6"); getContext().sendBroadcast(intent); 2.注册接收广播 // 初始化 BroadcastReceiv…

Vue 接入 CAS统一认证登录

Vue 接入 CAS统一认证登录 CAS&#xff08;Central Authentication Service&#xff09;是一种单点登录协议&#xff0c;可以实现多个应用程序之间的用户身份认证和授权。在 Vue 中接入 CAS 统一认证&#xff0c;可以实现用户在一个应用程序中登录后&#xff0c;在其他应用程序…

龙岗体育中心纯航拍多图33张(航拍深圳第2集)

龙岗区体育中心是区政府投资兴建的大型公益性体育场地设施&#xff0c;服务广大周边群众&#xff0c;做好各级赛事活动组织保障工作,普及促进全民健身&#xff0c;打造公益培训品牌&#xff0c;是深圳市体育场馆惠民开放示范单位。体育中心总占地面积约13万平方米。 想…