Spring MVC之HandlerMapping

Spring MVC之HandlerMapping

 

spring的HandlerMapping,说白了就是根据URL找到访问哪个对象哪个方法,将这些放到Handler对象中,然后Handler和拦截器一起放到HandlerExecutionChain对象中。

 

HandlerMapping的使用主要分为两步:注册和查找

 

注册是根据配置文件中的配置将一个字符串和一个Controller类以<key,value>的形式存入到Map中,这个key就是对应的url中的某个字段。

 

查找就是HandlerMapping根据url中的的某个字段,在Map中以这个字段为key值对应的Controller类,并将Controller类封装成一个HandlerExecutionChain对象,HandlerExecutionChain中除了有Controller对象外,还有一组拦截器。

 

 

 

HandlerMapping返回的是一个HandlerExecutionChain对象,其中包含:

 

1. Handler(其中包含bean)

 

2. bean需要的一组拦截器

 

 

HandlerMapping接口的实现 : 

BeanNameUrlHandlerMapping :通过对比url和bean的name找到对应的对象 

SimpleUrlHandlerMapping :也是直接配置url和对应bean,比BeanNameUrlHandlerMapping功能更多 

DefaultAnnotationHandlerMapping : 主要是针对注解配置@RequestMapping的,已过时 

RequestMappingHandlerMapping :取代了上面一个 

 

 

总结

 

handlerMapping的作用

handlerMapping根据用户请求找到执行该请求的controller。

 

handlerMapping的找到controller过程

      1. 根据配置文件对url到controller的映射进行注册

      2. 根据具体的url请求找到执行该请求的controller

猜你喜欢

转载自youyu4.iteye.com/blog/2347620
今日推荐