Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
首先判断该mehtod是否含有RequestMpping注解。如果有则直接根据该注解的内容创建RequestMappingInfo对象。然后在合并method上的RequestMappingInfo对象,最后返回合并后的对象。HandlerMethod和RequestMappingInfo类似,是对Controlelr下具体处理方法的封装。第二行通过handlerMethods map来获取当前mapping对应的HandlerMethod。如下这种配置就会导致此处抛在SpingMVC启动(初始化)阶段检查RequestMapping配置是否有歧义,这是其中一处检查歧义的。该方法的主要有3个职责1. 检查RequestMapping注解配置是否有歧义。该map便是AbstractHandlerMethodMapping的成员变量handlerMethods。其中String类型的key存放的是处理方法上RequestMapping注解的value。进入processRequest方法后,一系列处理后,在line:936进入doService方法。代码如下进入lookupHandlerMethod方法,其中lookupPath="/LookupTest/test1",根据lookupPath,也就是请求的uri。直接查找urlMap,获取直接匹配的RequestMappingInfo list。然后创建一个Match对象添加至matches list中。执行完addMatchingMappings方法,回到lookupHandlerMethod。
用户评论