
官方解释是这样的。
- /**
- * Abstract base class for {@link HandlerMapping} implementations that define
- * a mapping between a request and a {@link HandlerMethod}.
- *
- *
For each registered handler method, a unique mapping is maintained with
- * subclasses defining the details of the mapping type {@code
}. - * @param
The mapping for a {@link HandlerMethod} containing the conditions - * needed to match the handler method to incoming request.
- */
- public abstract class AbstractHandlerMethodMapping
extends AbstractHandlerMapping implements InitializingBean -
我的理解为AbstractHandlerMethodMapping为每个注册的handler method,对于每个子类映射类型都维护着其唯一的一个映射,就是维护handler method 和URL的关系。主要用于@Controller,@RequestMapping 等注解
AbstractHandlerMethodMapping 实现了InitializingBean接口,InitializingBean是在程序启动的时候执行其唯一的afterPropertiesSet()方法,那我们就先看一下启动时候的要做哪些操作。
- /**
- 在初始化的时候发现 handler methods
- * Detects handler methods at initialization.
- */
- @Override
- public void afterPropertiesSet() {
- initHandlerMe