类级别 @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 参数不生效
类级 @RequestMapping 的 method 参数不会影响最终 HTTP 方法解析:
java
@RequestMapping(
path = "/api",
method = RequestMethod.GET
)- Spring MVC 中最终 HTTP 方法由方法级注解决定
- 插件也遵循这一规则
3️⃣ path 拼接规则
类级 path 或 value 会与方法级注解及语法糖注解拼接:
java
@RequestMapping("/api")
public class UserController {
@GetMapping("/list")
public List<User> list() {}
}最终路径解析为:
/api/list
4️⃣ 条件参数合并
类级 @RequestMapping 的以下参数会与方法级进行合并:
headersparamsconsumes
合并规则:
- 类级条件作为基础约束
- 方法级条件作为增强/细化
- 最终接口条件 = 类级 + 方法级的合并结果
✅ 总结
- 类级
@RequestMapping主要提供路径前缀与通用请求条件 - HTTP 方法最终由方法级注解决定
- 路径与条件参数会与方法级注解进行拼接或合并
- 插件遵循 Spring MVC 语义,保证扫描结果与实际运行一致