SpringBoot @ResponseBody、@RequestBody和@RequestParam 基本介绍
SpringBoot @ResponseBody、@RequestBody和@RequestParam 基本介绍
这三个注解主要用于前后端分离架构中 SpringBoot 接收或者传输特定格式数据,现在重新捋一遍。
1、@ResponseBody
位置:注解在方法头上
作用:将方法的返回值以 json/xml
的数据格式返回给客户端,如果是JavaBean
对象,调用 getxxx()
方法获取属性值,如果是 map
集合,调用 get(key)
方法获取属性值,然后以键值对的方式转成 json字符串
。
复制@GetMapping(value = "/findById")
//注解在方法头上,返回 json/xml
@ResponseBody
public Result findById(@RequestParam Long id) {
User user = userService.findById(id);
return ResultUtil.success(user);
}
打印结果如下
没有该注解的影响:将返回一个ModelAndView
给客户端,即返回视图,常用的场景是跳转 jsp 页面。
提示没有该页面。
2、@RequestBody
位置:注解在方法的形参前
作用:接收 json/xml
封装成 JavaBean 对象或者集合,注意 xml
格式的支持需要添加额外的依赖。
@GetMapping(value = "/findById")
@ResponseBody
// 注解在形参前,用于接收 json/xml
public Result findById(@RequestBody User testUser) {
User user = userService.findById(testUser.getId());
return ResultUtil.success(user);
}
传参格式如下:
注意点:如果是前端页面传参时,需要手动设置 contentType: "application/json"
,默认的为 application/x-www-form-urlencoded
。
没有该注解的影响:JavaBean 对象或集合将无法接收 json/xml
3、@RequestParam
位置:注解在方法的形参前
作用:用于接收基本数据类型及其包装类。 通过value
属性指定传参名称,required
属性指定是否必传,默认为必传,defaultValue
属性指定默认值。
@GetMapping(value = "/findById")
@ResponseBody
//常用于接收基本数据类型及其包装类
public Result findById(@RequestParam(value = "id", required = true, defaultValue = "2") Long id) {
User user = userService.findById(id);
return ResultUtil.success(user);
}
传参格式如下:
注意点:只能使用基本数据类型及其包装类接收数据。
没有该注解的影响:该注解不为必写属性,如果想对参数进行限制可使用。
自我控制是最强者的本能-萧伯纳
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!