springmvc HandlerMapping HandlerAdapter
2017-07-03 15:30
387 查看
springmvc中非常重要的两个接口HandlerMapping和HandlerAdapter,第一个用来通过url找到对应的处理类,第二个用来执行和url对应的方法。
这两个接口的实现类可以自己编写并通过配置文件加载,如果不编写的话构架提供了几个默认的实现类,具体在DispatcherServlet.properties定义了有哪些默认的类。如果编写的话,就不会加载这些默认的类。
对于HandlerMapping,系统默认会注册多个实现类,然后根据request去匹配,找到合适的进而找到和url对应的处理类handler
对于HandlerAdapter,与HandlerMapping类似,系统也会默认会注册多个实现类,然后根据handler的类型进行匹配,找到合适的adapter,然后调用handle方法。这里用到了适配器模式,就是为了各种handler的实现不同,然后通过找到对应的适配器,调用统一的handler方法handle。
默认:
实现了HttpRequestHandler的controller使用HttpRequestHandlerAdapter
实现了Controller的controller使用SimpleControllerHandlerAdapter
自定义的controller使用RequestMappingHandlerAdapter
这两个接口的实现类可以自己编写并通过配置文件加载,如果不编写的话构架提供了几个默认的实现类,具体在DispatcherServlet.properties定义了有哪些默认的类。如果编写的话,就不会加载这些默认的类。
对于HandlerMapping,系统默认会注册多个实现类,然后根据request去匹配,找到合适的进而找到和url对应的处理类handler
对于HandlerAdapter,与HandlerMapping类似,系统也会默认会注册多个实现类,然后根据handler的类型进行匹配,找到合适的adapter,然后调用handle方法。这里用到了适配器模式,就是为了各种handler的实现不同,然后通过找到对应的适配器,调用统一的handler方法handle。
默认:
实现了HttpRequestHandler的controller使用HttpRequestHandlerAdapter
实现了Controller的controller使用SimpleControllerHandlerAdapter
自定义的controller使用RequestMappingHandlerAdapter
相关文章推荐
- SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-001- 配置SpringFlow(flow-executor、flow-registry、FlowHandlerMapping、FlowHandlerAdapter)
- Spring Web MVC 的HandlerMapping的使用之-------SimpleUrlHandlerMapping(有三种配法)
- Spring Web MVC 的HandlerMapping的使用之-------ControllerClassNameHandlerMapping
- SpringMVC HandlerInterceptorAdapter
- Spring MVC SimpleUrlHandlerMapping example
- Spring MVC BeanNameUrlHandlerMapping example
- 废弃的org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- Spring MVC ControllerClassNameHandlerMapping example
- Spring Web MVC 的HandlerMapping的使用之-------BeanNameUrlHandlerMapping
- Spring4 MVC 笔记: ControllerClassNameHandlerMapping 实现DispatcherServlet
- org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- 废弃的org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- Spring MVC SimpleUrlHandlerMapping example
- Spring MVC PageNotFound.noHandlerFound No mapping found for HTTP request with URI
- Spring MVC ControllerClassNameHandlerMapping example
- SpringMVC HandlerInterceptorAdapter登陆验证拦截器
- Spring 学习笔记-- <mvc:default-servlet-handler />默认加载simpleurlhandlermapping
- 【推荐】第一个SPRING MVC BeanNameUrlHandlerMapping
- Spring MVC SimpleUrlHandlerMapping example
- @FeignClient with top level @RequestMapping annotation is also registered as Spring MVC handler