Skip to content

类级别 @RequestMapping 注解支持

AsyncTest Caller 在解析类级别的 @RequestMapping 注解时,有如下支持与限制:


1️⃣ URL 解析支持

插件支持以下形式的类级 URL 表达式:

  • 字面量路径
java
@RequestMapping("/api")
  • 常量引用
java
@RequestMapping(ApiPath.BASE)
  • 字符串拼接表达式
java
@RequestMapping(ApiPath.BASE + "/user")
  • 括号表达式
java
@RequestMapping((ApiPath.BASE + "/user"))

2️⃣ method 参数不生效

类级 @RequestMappingmethod 参数不会影响最终 HTTP 方法解析:

java
@RequestMapping(
    path = "/api",
    method = RequestMethod.GET
)
  • Spring MVC 中最终 HTTP 方法由方法级注解决定
  • 插件也遵循这一规则

3️⃣ path 拼接规则

类级 pathvalue 会与方法级注解及语法糖注解拼接:

java
@RequestMapping("/api")
public class UserController {

    @GetMapping("/list")
    public List<User> list() {}
}

最终路径解析为:

/api/list


4️⃣ 条件参数合并

类级 @RequestMapping 的以下参数会与方法级进行合并:

  • headers
  • params
  • consumes

合并规则:

  • 类级条件作为基础约束
  • 方法级条件作为增强/细化
  • 最终接口条件 = 类级 + 方法级的合并结果

✅ 总结

  • 类级 @RequestMapping 主要提供路径前缀通用请求条件
  • HTTP 方法最终由方法级注解决定
  • 路径与条件参数会与方法级注解进行拼接或合并
  • 插件遵循 Spring MVC 语义,保证扫描结果与实际运行一致