十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我们再来看一看不配置任何HandlerMapping时,框架会使用什么。
创新互联建站于2013年成立,先为武江等服务建站,武江等地企业,进行企业商务咨询服务。为武江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。接着使用上面的配置,注释掉那个HandlerMapping:
1 2 12
13 14
15 17 18 19 20 21
22 24
25 26 27 28 29 30
31
32
这次我们打一断点调试一下看看使用了什么HandlerMapping:
可以看到注册了两个HandlerMapping,所以:
1.访问/simpleController,正常
2.访问/user/preAddUser(通过@RequestMapping注解的)也正常,因为DefaultAnnotationHandlerMapping也可以处理注解,这个还是spring3.1之前处理注解的一个类,3.1及以后改为了RequestMappingHandlerMapping这个类,查看api可以看到这个类【已经过期】,默认情况继续使用这个类可能是为了向后兼容。
其实这是一个默认配置,位置在spring-webmvc.jar里面,如果你没有显式注册一个HandlerMapping,那么就会使用org.springframework.web.servlet.DispatcherServlet.properties这个里面默认的配置,配置如下:
org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,
org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
所以就会注册上面两个RequestMapping。