spring boot 用 @getmapping 和 @postmapping 直接体现 http 动词语义,使接口意图一目了然;/users 路径下,get 查列表或单个,post 新增用户,路径只表资源,动词由注解决定,严格遵循 restful 设计原则。

Spring Boot 用 @GetMapping 和 @PostMapping 规范 RESTful 接口动词,核心是把 HTTP 方法语义直接“写进注解名”,而不是藏在 @RequestMapping 的 method 属性里。这样一眼就能看出这个接口是查数据还是提数据,不用读方法体、不靠命名猜意图。
动词和资源要严格对应
RESTful 不是加个注解就完事,关键在设计逻辑:HTTP 方法就是操作类型,URL 路径只表达资源本身。
- GET 请求必须对应查询动作,路径用复数名词,比如
/users、/users/123,不能写成/getUser或/queryUserById - POST 请求必须对应新建动作,路径仍是资源集合,比如
/users,表示“往用户集合里新增一个用户”,不是/createUser - 同一个路径
/users,用@GetMapping是查全部用户,用@PostMapping是新增用户——动词由注解决定,路径保持语义纯净
@GetMapping 处理查询类请求
它本质是 @RequestMapping(method = RequestMethod.GET) 的语义封装,专用于获取资源,天然排斥非 GET 请求。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 查列表:
@GetMapping("/users")→ 返回用户集合 - 查单个:
@GetMapping("/users/{id}"),配合@PathVariable Long id提取路径参数 - 带条件查询:
@GetMapping("/users"),用@RequestParam接收?name=xxx&page=1这类查询参数,不放请求体 - 不支持请求体(
@RequestBody),如果误加了,Spring 会报 400 错误,这是它的保护机制
@PostMapping 处理新建类请求
它等价于 @RequestMapping(method = RequestMethod.POST),明确限定只响应 POST,且默认期望接收 JSON 数据体。
- 新增资源:
@PostMapping("/users"),参数用@RequestBody User user接收完整对象 - 不推荐从 URL 或表单参数取主体数据,避免语义混乱;如需额外控制字段,可用
@RequestHeader或@RequestParam补充元信息 - 成功后建议返回
ResponseEntity.created(URI.create("/users/123")).body(user),带 201 状态码和新资源地址,符合 RESTful 响应规范 - 如果前端发 GET 到这个接口,直接 405 Method Not Allowed,不会误执行业务逻辑
组合使用时注意层级与前缀统一
避免每个方法都写全路径,用类级 @RequestMapping 抽公共前缀,再用组合注解细化动作。
- 在 Controller 类上加
@RequestMapping("/api/v1/users"),所有方法自动继承该路径 - 方法上只写相对路径:
@GetMapping→ 实际映射GET /api/v1/users;@PostMapping→POST /api/v1/users - 单个资源操作写成
@GetMapping("/{id}"),Spring 自动绑定路径变量,不需要手动解析字符串 - 别在路径里塞动词,例如
@PostMapping("/users/add")违反 RESTful 原则,也削弱了注解的语义价值










