@PathVariable注解详解
实现思路
请求路径如:/person/list/101。使⽤正则将id为key,101为value填充到map中放到request域中。为⽬标⽅法形参设置参数时拿出request域中的值然后赋值。
实现原理
@PathVariable注解对应的解析器是PathVariableMethodArgumentResolver
根据HandlerMapping映射处理器获得HandlerExecutionChain
mappedHandler = getHandler(processedRequest);
获得请求的⽬标⽅法的包装类HandlerMethod
Object handler = getHandlerInternal(request);
查与请求路径正则匹配的⽬标⽅法
HandlerMethod handlerMethod = lookupHandlerMethod(lookupPath, request);
List<Match> matches = new ArrayList<Match>();
// 获得匹配的映射Match(RequestMappingInfo, HandlerMethod)
正则匹配注解
addMatchingMappings(Mappings().keySet(), matches, request);
// 处理匹配成功的映射
handleMatch(bestMatch.mapping, lookupPath, request);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。