spring boot接口如何传参
时间: 2024-12-28 22:28:47 浏览: 4
### Spring Boot 中接口传递参数的方法
在构建 RESTful API 时,Spring Boot 提供了多种方式来处理 HTTP 请求中的参数。以下是几种常见的方法:
#### 使用 `@RequestParam` 获取 URL 参数
当请求路径不变而需要动态传参时可以使用此注解。
```java
@GetMapping("/greet")
public String greet(@RequestParam(value="name", defaultValue="World") String name) {
return "Hello, " + name;
}
```
上述代码定义了一个 GET 方法 `/greet?name=John` 将返回 `"Hello, John"` 如果不提供 `name` 则默认为 `"World"`[^1]。
#### 路径变量 `@PathVariable`
对于更清晰直观的路由设计来说非常有用,它允许开发者直接从 URI 中提取部分作为函数形参。
```java
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id){
// Logic to fetch user by ID.
return userService.findById(id);
}
```
这里访问 `/users/123` 可以获取编号为 123 的用户信息。
#### 表单数据提交 `@ModelAttribute` 或者 `@RequestBody`
针对 POST 和 PUT 类型的操作通常会涉及到表单或 JSON 数据体内的字段映射到实体类对象上。
##### 对于简单的键值对形式的数据可以用 `@ModelAttribute`:
```java
@PostMapping("/createUser")
public ResponseEntity<String> createUser(@ModelAttribute UserForm form){
// Process the submitted data...
return new ResponseEntity<>("Success", HttpStatus.CREATED);
}
```
##### 当接收复杂结构如 JSON/XML 文档则更适合采用 `@RequestBody` 注解配合 Jackson 序列化库解析成 Java Bean 实例:
```java
@PostMapping("/updateProfile")
public Profile updateProfile(@RequestBody Profile profile){
// Update logic here...
return profileRepository.save(profile);
}
```
以上展示了如何根据不同场景选择合适的方式来接受来自客户端发送过来的不同类型的输入并将其绑定至控制器层的方法签名之中。
阅读全文