Spring 4.3 对原有的 @RequestMapping
注解进行了增强,引入了一系列 语义更清晰、更简洁 的快捷变种注解:
🔧 一、@RequestMapping 的变种注解
快捷注解 | 对应 HTTP 方法 |
---|---|
@GetMapping | GET |
@PostMapping | POST |
@PutMapping | PUT |
@DeleteMapping | DELETE |
@PatchMapping | PATCH |
✅ 这些注解都继承自
@RequestMapping
,底层逻辑完全一致,只是语义更明确、代码更简洁。
📌 二、基本语法示例
@RestController
@RequestMapping("/users")
public class UserController {
// GET /users
@GetMapping
public List<User> listUsers() {
return userService.findAll();
}
// GET /users/{id}
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
return userService.findById(id);
}
// POST /users
@PostMapping
public User createUser(@RequestBody User user) {
return userService.save(user);
}
// PUT /users/{id}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
return userService.update(id, user);
}
// DELETE /users/{id}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userService.delete(id);
}
// PATCH /users/{id}
@PatchMapping("/{id}")
public User patchUser(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
return userService.partialUpdate(id, updates);
}
}
🔍 三、注解参数支持(与 @RequestMapping 相同)
这些快捷注解都支持以下常用参数:
参数 | 说明 | 示例 |
---|---|---|
value | 请求路径 | @GetMapping("/list") |
path | 同 value ,语义更清晰 | @PostMapping(path="/save") |
produces | 返回类型(MIME) | produces="application/json" |
consumes | 接收类型 | consumes="application/json" |
headers | 限制请求头 | headers="key=value" |
params | 限制参数 | params="type=admin" |
✨ 四、使用优势
✅ 简洁:比传统 @RequestMapping(method=...)
更清爽
✅ 语义明确:让代码意图更清晰(特别是 REST 风格 API)
✅ 更易维护:阅读、查错、调试都更方便
🧠 五、对比传统写法
✅ 快捷写法(推荐):
@GetMapping("/users")
public List<User> list() {}
🧾 传统写法(繁琐):
@RequestMapping(value="/users", method=RequestMethod.GET)
public List<User> list() {}
🧩 六、兼容性
- Spring 4.3 起新增,Spring Boot 1.4 起默认支持。
- 向下兼容
@RequestMapping
,可以混用。
如果你正在构建 RESTful 接口,强烈建议统一使用这些变种注解,能让接口风格更规范、代码更现代。
需要我提供一个完整的 CRUD 示例项目(含 Spring Boot + JPA)来演示这些注解的使用吗?只需说一声~
发表回复