数码之家
第二套高阶模板 · 更大气的阅读体验

SpringBoot 接口定义注解详解

发布时间:2025-12-17 02:30:53 阅读:227 次

开发一个 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 就适合用参数。

合理使用这些注解,不仅能减少样板代码,还能提升团队协作效率。别人看你的代码时,一眼就能明白这个接口是干啥的,怎么调用,传什么参数。