在 Spring Boot 开发中,构建 RESTful 接口主要依赖几个核心注解。掌握它们的用法,是编写 Web 接口的基础。
1. @RestController
这是一个组合注解,相当于 @Controller + @ResponseBody。
使用后,方法返回值会自动转为 JSON 响应,适合前后端分离项目。
@RestController public class UserController { @GetMapping("/user") public User getUser() { return new User("Tom"); } }
⚠️ 注意:如果需要返回 HTML 页面(如使用 Thymeleaf),应改用
@Controller,否则页面名称会被当作字符串直接输出。
2. @RequestMapping
用于映射 HTTP 请求路径,可作用于类或方法上。支持指定请求方法(GET、POST 等)。
@RequestMapping(value = "/api", method = RequestMethod.GET)
通常配合更具体的注解使用,如 @GetMapping、@PostMapping。
3. @PathVariable
用于获取 URL 路径中的动态参数。
@GetMapping("/user/{id}") public User getUser(@PathVariable Long id) { // 获取 URL 中的 id,如 /user/123 → id = 123 }
4. @RequestParam
用于获取 URL 查询参数(? 后面的参数)。
@GetMapping("/search") public List<User> search(@RequestParam String keyword) { // 处理 ?keyword=xxx }
支持设置默认值和是否必填:
@RequestParam(defaultValue = "10") int size
5. @RequestBody
用于接收前端发送的 JSON 请求体,并自动反序列化为 Java 对象。
@PostMapping("/user") public String createUser(@RequestBody User user) { // 接收 {"name": "Alice"} 并转为 User 对象 }
仅适用于 POST、PUT 等带请求体的请求。
小结
| 注解 | 用途 |
@RestController |
返回 JSON 数据 |
@RequestMapping |
映射请求路径 |
@PathVariable |
获取路径变量(/user/{id}) |
@RequestParam |
获取查询参数(?key=value) |
@RequestBody |
接收 JSON 请求体 |
这些注解构成了 Spring Boot Web 开发的核心,熟练使用即可应对绝大多数接口开发场景。