返回

Spring Boot REST 风格请求处理:接收参数相关注解详解

后端

在 Spring Boot 的 REST 风格请求处理中,接收参数需要借助相关的注解来实现。本文将介绍 Spring Boot 中常用的接收参数相关注解,包括简单类型参数、复杂类型参数和自动封装。

接收简单类型参数

对于简单的请求参数,如字符串、数字和布尔类型等,可以使用以下注解:

  • @RequestParam:用于接收 HTTP 请求中的查询参数。
  • @PathVariable:用于接收 HTTP 请求中的路径参数。
  • @RequestHeader:用于接收 HTTP 请求中的头信息。
  • @CookieValue:用于接收 HTTP 请求中的 Cookie 值。

例如,以下代码演示了如何使用 @RequestParam 注解接收一个名为 name 的字符串查询参数:

@GetMapping("/hello")
public String hello(@RequestParam String name) {
    return "Hello, " + name + "!";
}

当客户端向该接口发起 GET 请求时,需要在请求 URL 中附带 name 参数,例如:

http://localhost:8080/hello?name=John

此时,name 参数的值将被自动注入到 hello() 方法的参数中,从而可以被方法使用。

接收复杂类型参数

对于复杂类型的请求参数,如 Java 对象等,可以使用以下注解:

  • @RequestBody:用于接收 HTTP 请求中的请求体。
  • @ModelAttribute:用于接收 HTTP 请求中的请求体或查询参数。

例如,以下代码演示了如何使用 @RequestBody 注解接收一个名为 user 的 JSON 对象请求体:

@PostMapping("/user")
public String createUser(@RequestBody User user) {
    // 保存 user 对象到数据库
    return "User created successfully!";
}

当客户端向该接口发起 POST 请求时,需要在请求体中附带一个 JSON 对象,例如:

{
  "name": "John",
  "email": "john@example.com"
}

此时,user 对象将被自动注入到 createUser() 方法的参数中,从而可以被方法使用。

自动封装

在 Spring Boot 中,还可以使用自动封装功能来简化接收复杂类型参数的过程。自动封装是指 Spring Boot 会自动将请求体中的 JSON 数据或查询参数数据封装到 Java 对象中。

要使用自动封装功能,需要在控制器方法的参数上使用 @ModelAttribute 注解,并指定要封装的 Java 对象类型。例如:

@PostMapping("/user")
public String createUser(@ModelAttribute User user) {
    // 保存 user 对象到数据库
    return "User created successfully!";
}

此时,Spring Boot 会自动将请求体中的 JSON 数据或查询参数数据封装到 User 对象中,从而可以被方法使用。

结论

本文介绍了 Spring Boot 中常用的接收参数相关注解,包括简单类型参数、复杂类型参数和自动封装。掌握这些注解的用法可以帮助开发者更轻松地处理 RESTful API 请求。

拓展阅读