跳到主要内容

Spring Boot 常用参数注解使用

1. @PathVariable 注解

通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中。比如在 URL 中使用 {} 语法定义占位符。

@RestController
public class ParamController {
@RequestMapping("aa/{user}/mm/{num}")
public String testPathVariable(
@PathVariable("user") String userID,
@PathVariable("num") String num
) {
System.out.println(userID);
System.out.println(num);
return "hello";
}
}

// 发送请求: http://localhost:8088/aa/789/mm/333
java

控制台输出:

789
333
text

2. @RequestParam 注解

@RequestParam 用于获取 URL 查询参数或表单参数。可以通过设置 requireddefaultValue 属性来控制参数的必要性和默认值。

@RestController
public class ParamController {
@GetMapping("/greet")
public String greet(@RequestParam(name = "name", required = false, defaultValue = "Guest") String name) {
return "Hello, " + name;
}
}

// 发送请求: http://localhost:8088/greet?name=John
java

控制台输出:

Hello, John
text

3. @RequestBody 注解

@RequestBody 用于将请求体中的 JSON 数据绑定到 Java 对象。通常用于 POST 请求。

@RestController
public class ParamController {
@PostMapping("/user")
public String createUser(@RequestBody User user) {
System.out.println(user.getName());
return "User created: " + user.getName();
}
}

// 请求体: { "name": "Alice" }
java

4. @CookieValue 注解

@CookieValue 用于获取请求中的 Cookie 值。

@RestController
public class ParamController {
@GetMapping("/cookie")
public String getCookieValue(@CookieValue(value = "SESSION", defaultValue = "default") String session) {
return "Session ID: " + session;
}
}

// 发送请求时需携带 SESSION Cookie
java

5. @RequestHeader 注解

@RequestHeader 用于获取请求头信息。

@RestController
public class ParamController {
@GetMapping("/header")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {
return "User-Agent: " + userAgent;
}
}
java

6. @RequestAttribute 注解

@RequestAttribute 用于获取请求中存储的属性,通常在拦截器中设置。

@RestController
public class ParamController {
@GetMapping("/attribute")
public String getAttribute(@RequestAttribute("attrName") String attr) {
return "Attribute: " + attr;
}
}
java

7. @MatrixVariable 注解

@MatrixVariable 用于获取矩阵变量,矩阵变量是一种在路径中使用分号/逗号分隔的参数,适用于路径变量的进一步细分。

@RestController
public class ParamController {
@GetMapping("/users/{userId}")
public String getUser(@PathVariable String userId, @MatrixVariable String age) {
return "User ID: " + userId + ", Age: " + age;
}
}

// 发送请求: http://localhost:8088/users/1;age=30
java
请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...