Spring mvc之MappingRegistry类
  wppYuBI3bZta 2023年11月09日 95 0

1. 简介

该类是AbstractHandlerMethodMapping类的默认作用域的内部类。
方法调用栈如下:
getHandler方法->getHandlerInternal方法->lookupHandlerMethod方法

1.1 urlLookup属性


private final MultiValueMap<String, T> urlLookup = new LinkedMultiValueMap<>();

它是MultiValueMap<String, T>类型,MultiValueMap是spring-core包下定义的key-value多值Map接口定义,一个用于存储一个key对应多个值的情况。


Spring mvc之MappingRegistry类_请求参数

image.png


从截图中可以看到key值就是url访问路径,而value是一个LinkedList对象。

1.2 mappingLookup属性


private final Map<T, HandlerMethod> mappingLookup = new LinkedHashMap<>();

Spring mvc之MappingRegistry类_作用域_02

image.png


这个属性通过是一个普通的LinkedHashMap对象,key是访问接口路径URL,value是一个HandlerMethod对象。


private void addMatchingMappings(Collection<T> mappings, List<Match> matches, HttpServletRequest request) {
        for (T mapping : mappings) {
            T match = getMatchingMapping(mapping, request);
            if (match != null) {
                matches.add(new Match(match, this.mappingRegistry.getMappings().get(mapping)));
            }
        }
    }

通过上一步根据URL获取到的RequestMappingInfo的请求参数没问题后,再根据这个步骤获取HandlerMethod对象。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月09日 0

暂无评论

推荐阅读
wppYuBI3bZta