开发一个 Web 项目时,ref="/tag/42/" style="color:#874873;font-weight:bold;">接口的定义是核心环节。在 SpringBoot 中,通过一系列注解可以快速、清晰地定义 RESTful 接口,让代码更简洁,也更容易维护。
常用接口定义注解介绍
@RestController 是最基础的注解之一,它相当于 @Controller 和 @ResponseBody 的组合。加上这个注解的类,里面所有方法返回的内容都会直接写入响应体,而不是跳转页面。
@RestController
public class UserController {
<!-- 示例方法 -->
}
比如你要做一个用户信息查询接口,可以用 @GetMapping 来映射 GET 请求。这个注解让方法和 URL 路径绑定,写起来直观。
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
return userService.findById(id);
}
这里的 @PathVariable 用来提取路径中的变量,就像把 {id} 替换成实际传入的数字。如果参数是从查询字符串来的,比如 /user?name=zhangsan,那就用 @RequestParam。
@GetMapping("/user")
public List<User> getUsers(@RequestParam String name) {
return userService.findByName(name);
}
POST 请求通常用于提交数据,比如新增用户。这时用 @PostMapping,并配合 @RequestBody 把请求体中的 JSON 自动转成 Java 对象。
@PostMapping("/user")
public Result addUser(@RequestBody User user) {
userService.save(user);
return Result.success();
}
有时候接口需要灵活支持多种 HTTP 方法,可以用 @RequestMapping,它可以指定 method 属性来区分。
@RequestMapping(value = "/user", method = {RequestMethod.GET, RequestMethod.POST})
public String handleUser() {
return "处理用户请求";
}
这些注解配合使用,能让接口逻辑一目了然。就像搭积木一样,每个注解负责一块功能,组合起来就是完整的接口定义。
实际开发中,很多人一开始会混淆 @RequestParam 和 @PathVariable,其实记住一点就行:带问号的参数用前者,路径里占位符用后者。就像点外卖时,店铺 ID 写在路径里用 /shop/123,而筛选条件如 ?type=fastfood 就适合用参数。
合理使用这些注解,不仅能减少样板代码,还能提升团队协作效率。别人看你的代码时,一眼就能明白这个接口是干啥的,怎么调用,传什么参数。