HandlerMapping
Spring mvc 使用HandlerMapping来找到并保存url请求和处理函数间的mapping关系。
以DefaultAnnotationHandlerMapping为例来具体看HandlerMapping的作用
DefaultAnnotationHandlerMapping将扫描当前所有已经注册的spring beans中的@requestmapping标注以找出url 和 handler method处理函数的关系并予以关联。
Handleradapter
Spring MVC通过HandlerAdapter来实际调用处理函数。
以AnnotationMethodHandlerAdapter为例
DispatcherServlet中根据handlermapping找到对应的handler method后,首先检查当前工程中注册的所有可用的handlerAdapter,根据handlerAdapter中的supports方法找到可以使用的handlerAdapter。通过调用handlerAdapter中的handle方法来处理及准备handler method中的参数及annotation(这就是spring mvc如何将reqeust中的参数变成handle method中的输入参数的地方),最终调用实际的handle method。
detectAllHandlerMappings
缺省情况下spring mvc 将加载 当前系统中所有实现了HandlerMapping接口的bean。如果只期望spring mvc加载指定的handlermapping时,可以修改web.xml中的DispatcherServlet的初始参数,将detectAllHandlerMappings的值设置为false
<init-param>
<param-name>detectAllHandlerMappings</param-name>
<param-value>false</param-value>
</init-param>
此时spring mvc将查找名 为“handlerMapping”的bean并作为当前系统中唯一的handlermapping。
如果没有定义handlerMapping的话,则spring mvc将按照org.springframework.web.servlet.DispatcherServlet所在目录下的DispatcherServlet.properties中所定义的org.springframework.web.servlet.HandlerMapping的内容来加载缺省的handlerMapping(用户没有自定义Strategies的情况下)。
detectAllHandlerAdapters
作用和detectAllHandlerMappings类似,只不过作用对象为handlerAdapter。亦可通过
<init-param>
<param-name>detectAllHandlerAdapters</param-name>
<param-value>false</param-value>
</init-param>
来强制系统只加载bean name 为” handlerAdapter”handlerAdapter。加载不到的情况下将按照DispatcherServlet.properties中所定义的org.springframework.web.servlet.HandlerAdapter的内容来加载缺省的handlerAdapter。
分享到:
相关推荐
**Spring MVC 学习笔记** Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(MVC)架构,简化了开发过程,使得开发者可以专注于业务逻辑而不必过于关注底层的细节。...
本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...
### Spring MVC 学习笔记 #### 一、Spring MVC 核心组件与工作流程 **Spring MVC** 是 **Spring Framework** 的一个重要模块,主要用于构建基于 Web 的应用程序。它提供了简化 Web 开发的一系列功能,包括但不限于...
**Spring MVC 学习笔记** Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(Model-View-Controller)架构,帮助开发者处理请求、控制应用程序流程,并实现业务逻辑...
在本学习笔记中,我们将探讨 Spring MVC 的核心概念、配置、控制器、模型和视图的交互,以及如何使用它来处理用户请求。 ### 1. Spring MVC 核心组件 - **DispatcherServlet**:它是 Spring MVC 的前端控制器,...
在Spring MVC的学习过程中,了解和掌握其核心概念与机制至关重要。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序。在Spring 3.0.x版本中,Spring MVC进行了大量的改进,引入了许多新特性和优化,使其...
### Spring3 MVC 学习笔记入门知识点解析 #### 一、Spring MVC 概念与架构 **Spring MVC** 是 Spring Framework 的一个重要模块,主要用于构建基于 Web 的应用。它实现了 Model-View-Controller(MVC)设计模式,...
"SpringMvc 学习笔记" 可能包含了关于这些概念的详细解释和实例,帮助读者深入理解 Spring MVC 的工作原理和实践技巧。代码示例则提供实战练习,让学习者能够动手操作,加深理解。 总之,Spring MVC 是 Java 后端...
**MVC 模式简介** MVC(Model-View-Controller)模式是一种广泛应用于Web应用程序设计的架构模式,它将应用程序分为三个主要组件...通过阅读"MVC-step-by-step"笔记,我们可以系统地学习和掌握Spring MVC的各个方面。
DispatcherServlet是入口点,ModelAndView封装了模型数据和视图名,而HandlerMapping和HandlerAdapter负责请求映射和处理器调用。深入源码,可以理解Spring MVC的请求流转过程。 另外,Spring还提供了对WebSocket、...
本学习笔记将深入探讨 Spring MVC 的核心概念、配置、控制器、模型绑定、视图解析以及与其他 Spring 组件的集成。 首先,Spring MVC 的核心概念包括 DispatcherServlet、HandlerMapping、HandlerAdapter、...
这个压缩包文件“spring_mvc-学习”显然包含了关于Spring MVC的学习资料,可能是教程、代码示例或笔记。 在Spring MVC中,主要概念包括: 1. **DispatcherServlet**:作为Spring MVC的前端控制器,负责接收HTTP...
### SpringMVC学习笔记 #### 一、SpringMVC概述 **1.1 什么是SpringMVC** SpringMVC作为Spring Framework的一个重要组成部分,主要针对Web应用开发提供了一个功能全面的MVC(Model-View-Controller)框架。它是...
在Spring MVC框架中,Controller是核心...这个过程是Spring MVC实现请求分发和路由的基础,也是开发者理解和优化Spring MVC应用程序的重要环节。通过深入理解这些概念,我们可以更好地设计和调试我们的Web应用程序。
在实际开发中,SpringMVC 结合其他 Spring 模块和第三方工具,可以极大地提高开发效率。例如,Spring Boot 可以简化 SpringMVC 的配置,提供开箱即用的 Web 应用解决方案。IDEA 或 Eclipse 等集成开发环境提供了强大...
通过这个简单的学习笔记,你可以理解Spring MVC的基本架构和工作流程,为进一步深入学习和实践打下基础。在实际开发中,你还可以探索更多的功能,如注解驱动、数据绑定、异常处理、国际化、Ajax支持等,以构建更加...
同时,SpringMVC也需要配置HandlerMapping、HandlerAdapter和ViewResolver,以便支持多种类型的解决器和视图技术。 结论 SpringMVC是基于Java的Web应用程序框架,它提供了一个基于模型-视图-控制器(MVC)架构的...
通过深入学习这些知识点,并结合提供的源码笔记,你可以更好地理解 Spring MVC 的设计模式和最佳实践,从而更高效地开发 Web 应用。此外,了解如何利用 Spring Boot 进行自动化配置和快速开发也是现代 Web 开发的...