首页 > 其他分享 >​‌Spring Boot中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数​,详细示例

​‌Spring Boot中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数​,详细示例

时间:2024-12-05 14:28:35浏览次数:10  
标签:HTTP String GET int 示例 private GetMapping User 注解

下面内容来自Ai回答,经过亲自验证,正确 





Spring Boot
中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数。

接收对象参数的基本方式

在Spring Boot中,可以通过@GetMapping注解接收对象参数,这通常通过@RequestParam或@RequestBody注解来实现。

  1. 使用@RequestParam注解‌:
    当请求的参数较少且为基本类型时,可以使用@RequestParam注解。例如,假设有一个用户类User:

     

    javaCopy Code

    public class User { private String name; private int age; // Getter和Setter方法 }

    可以通过@GetMapping方法接收User对象的基本信息:

     

    javaCopy Code

    @GetMapping("/user") public String getUser(@RequestParam String name, @RequestParam int age) { User user = new User(); user.setName(name); user.setAge(age); return "User name: " + user.getName() + ", age: " + user.getAge(); }

  2. 使用@RequestBody注解‌:
    当需要传递复杂对象时,可以使用@RequestBody注解。例如,假设有一个查询参数类YxStoreProductQueryParam:

     

    javaCopy Code

    @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "YxStoreProductQuery对象", description = "商品表查询参数") public class YxStoreProductQueryParam extends QueryParam { private int page; private int limit; private int sid; private int cid; private int news; private String priceOrder; private String salesOrder; private String keyword; private Integer brandId; }

    可以通过@GetMapping方法接收这个对象:

     

    javaCopy Code

    @GetMapping("/products") public ApiResult<?> goodsList(YxStoreProductQueryParam productQueryParam) { return ApiResult.ok(storeProductService.getGoodsList(productQueryParam)); }

    这样,整个对象会被自动映射到请求体中的JSON或表单数据。

示例代码和解释

以下是一个使用@GetMapping接收对象参数的完整示例:


javaCopy Code

@GetMapping("/example3") public void example3(SubTest1 subTest1) { System.out.println(subTest1); // SubTest1{content='测试内容'} }

在这个例子中,SubTest1是一个简单的JavaBean,包含一个content属性。当访问/example3?content=测试内容时,Spring会自动将查询字符串中的content=测试内容映射到SubTest1对象的content属性上。

标签:HTTP,String,GET,int,示例,private,GetMapping,User,注解
From: https://blog.csdn.net/wangwenzhe222/article/details/144252818

相关文章

  • 实战示例:在报表中添加权限管控
    本文目录一:修改代码二、创建用户角色并测试三、对更改后的代码进行测试补充示例:给用户增加权限业务场景:需要给报表添加权限管控,没有工厂权限的用户使用该事务码查询不到对应的数据。一、修改代码①确定权限管控的位置:一般权限检查写在最开始,在STARTOFSELECTION部分;也......
  • RESTful API 简介(Python示例)
    RESTfulAPI是一种基于REST(RepresentationalStateTransfer,表述性状态转移)架构风格的接口设计方法。它通过HTTP协议提供对资源的访问和操作,具有简单、高效和可扩展的特点。REST的核心概念1.资源(Resource)•资源是RESTfulAPI的核心。•每个资源用一个唯一的U......
  • SpringBoot中HTTP高性能客户端实现
    目录1、引入OKHTTP依赖2、配置OkHttpClient客户端实例3、请求调用1、引入OKHTTP依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.12.0</version> </dependency>2、配置Ok......
  • 使用 httputils + protostuff 实现高性能 rpc
    1、先讲讲protostufprotostuf一直是高性能序列化的代表之一。但是用起来,可难受了,你得先申明protostuf配置文件,并且要把这个配置文件转成类。所以必然要学习新语法、新工具。可能真的太难受了!于是乎,(有不爽的人)搞了个有创意的框架protostuff(多一个字母“f”)。它借用注解,替代......
  • Geolocation.getCurrentPosition()用来做什么的?在什么浏览器不受兼容?
    geolocation.getCurrentPosition()是一个JavaScriptAPI,用于获取用户的当前地理位置。它属于GeolocationAPI的一部分,允许Web应用程序访问用户的地理位置信息,前提是用户授予了权限。该方法异步地尝试获取用户的地理位置。成功获取位置后,会调用一个回调函数,并将一个Positio......
  • 宝塔安装证书后http访问错误
    1.检查防火墙设置检查防火墙规则:确保防火墙没有阻止80和443端口。使用以下命令查看防火墙状态:  sudoufwstatus允许80和443端口:如果防火墙阻止了80和443端口,可以添加规则允许它们:  sudoufwallow80/tcpsudoufwallow443/tcp......
  • Qt编写嵌入式linux输入法/支持自定义词语和繁体/支持wayland和watson/纯QWidget/界面
    一、功能特点纯QWidget编写,原创输入法机制,没有任何第三方动态库的依赖。支持各种Qt版本,包括Qt4、Qt5、Qt6及后续版本。支持各种编译器,包括mingw、msvc、gcc、clang、wasm等。支持各种目标平台,包括windows、linux、macos、android、嵌入式linux等。支持任意控件输入,包括文本......
  • 抓包Http/Https/Other数据包(小迪网络安全笔记~
    附:完整笔记目录~ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!2.1抓包Http/Https引子:上一章主要对当前常见的一些资产应用做了总结,而这些应用与用户/服务器/应用之间的交互行为都是通过网络数据包实现的。而之间使用最多的为Http/Https数据包,本篇则对不同应用Http......
  • 物体检测(YOLO)示例:使用 Rust 调用 Python 进行物体检测
    在本示例中,我们将展示如何使用Rust调用Python脚本来完成YOLO物体检测任务。我们将通过Rust的std::process::Command调用Python脚本,并传递输入图像以进行检测。环境准备首先,您需要安装以下工具:更多内容访问ttocr.com或联系1436423940Rust语言:从Rust官网安装R......
  • http请求超时, 底层发生了什么?
    业务方反应调用接口超时,但是在服务端监控并没有看到5xx异常,于是我们模拟一下请求超时时发生了什么?1.openresty模拟长耗时服务端延迟5s响应error_loglogs/error.log;http{server{listen80;charsetutf-8;location/reqtimeout{......