SpringMVC之RequestMappingHandlerMapping(一)开篇

这一段时间工作比较忙,自己也变得懒惰了一些,回头看看博客已经有半年多没有更新了。还是要让自己保持一颗不断学习的心的,就以SpringMVC的RequestMappingHandlerMapping的分析作为新的开始吧,本文所用的SpringMVC版本为5.1.5。我们在学习SpringMVC的时候,RequestMappingHandlerMapping和RequestMappingHandlerAdapter这两个类是我们需要经常打交道的两个类。在之前的文章中简单的分析过RequestMappingHandlerAdapter,在接下来的文章中,我们简单的分析下RequestMappingHandlerMapping这个类,本篇文章主要先列举下和RequestMappingHandlerMapping相关的一些类。
首先,我们先看下RequestMappingHandlerMapping这个类是做什么用的。在这个类的注释上是这么写的:

Creates {@link RequestMappingInfo} instances from type and method-level {@link RequestMapping @RequestMapping} 
annotations in {@link Controller @Controller} classes.

大概意思是为在标注@Controller注解的类中的@RequestMapping注解创建RequestMappingInfo实例。这句话乍看可能会不太明白,这个RequestMappingInfo又是个什么东西呢?在此之前先问大家一个问题,如果让你设计一个类似SpringMVC的框架的话,前端请求和后台处理类的映射应该怎么去做呢?我们看一下RequestMappingHandlerMapping这个类的UML图是什么样的:
RequestMappingHandlerMapping
我们来说和这次分析相关的一些类:

RequestMappingInfoHandlerMapping:

为RequestMappingInfo定义请求和应的处理类之间的映射关系的基类。

AbstractHandlerMethodMapping

实现HandlerMapping的一个抽象类,用来定义一个请求和HandlerMethod的映射关系。对于每一个注册的HandlerMethod,都由它的定义了详细映射类型的子类来维护一个唯一的映射关系。有点绕~

AbstractHandlerMapping

HandlerMapping的一个抽象实现,支持排序、有默认的请求处理类,默认的拦截器,包括由路径模式映射拦截器。

HandlerMapping

定义请求和请求处理类映射关系的一个接口。一个处理类通常会被组装为HandlerExecutionChain,在HandlerExecutionChain中会包含HandlerInterceptor的实例。上面这几个类的关系是:
RequestMappingHandlerMapping---->RequestMappingInfoHandlerMapping---->AbstractHandlerMethodMapping----> AbstractHandlerMapping---->HandlerMapping

RequestMappingInfo

保存请求映射信息的类。如:请求方法、请求参数、请求头信息等。

UrlPathHelper

为URL路径匹配提供帮助的类。

PathMatcher

基于字符串路径匹配的策略接口。默认实现是AntPathMatcher。主要在PathMatchingResourcePatternResolver、AbstractUrlHandlerMapping、WebContentInterceptor中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值