Spring Boot Web中类级别@RequestMapping路径追加字符s的实现方法
Spring Web 中@RequestMapping的默认路径拼接规则是类级别路径 + 分隔符/ + 方法级别路径,所以你当前的配置最终生成的接口路径是/post/s,无法得到/posts,可以根据你的业务场景选择以下方案实现需求:
- 方案1:方法级指定绝对路径,跳过类路径拼接
当你接口内只有这一个方法不需要复用/post前缀时,给方法级路径开头加/设为绝对路径即可,Spring 会直接使用方法上的路径作为最终路径,不会拼接类级路径:
@RequestMapping(value = "/post") public interface PostApi { // 以/开头的路径为绝对路径,最终路径为 /posts @RequestMapping(value = "/posts") ResponseEntity getAll(); }
- 方案2:调整类级前缀,全接口复用统一前缀
如果这个接口下的所有方法都以/posts为公共前缀,直接修改类级的@RequestMapping路径,方法级路径设为空即可:
// 类级直接设置为公共前缀 /posts @RequestMapping(value = "/posts") public interface PostApi { // 空路径,最终拼接为 /posts @RequestMapping(value = "") ResponseEntity getAll(); // 其他方法可正常拼接,例如下方路径最终为 /posts/{id} @RequestMapping(value = "/{id}") ResponseEntity getById(@PathVariable Long id); }
补充:如果你使用的是
@GetMapping/@PostMapping这类@RequestMapping的派生注解,路径规则和上述说明完全一致,直接替换对应注解即可。
内容的提问来源于stack exchange,提问作者acakojic
相关产品推荐
相关产品推荐

