下面内容来自Ai回答,经过亲自验证,正确
**Spring Boot中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数。**
接收对象参数的基本方式
在Spring Boot中,可以通过@GetMapping注解接收对象参数,这通常通过@RequestParam或@RequestBody注解来实现。
-
使用@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(); }
-
使用@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
属性上。