`

Spring MVC 学习笔记 三 handlerMapping和handlerAdapter

 
阅读更多

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 MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(MVC)架构,简化了开发过程,使得开发者可以专注于业务逻辑而不必过于关注底层的细节。...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    本学习笔记主要围绕Spring MVC的使用、配置和核心组件进行深入探讨,旨在帮助开发者更好地理解和掌握这一框架。 在Spring MVC中,Model代表业务逻辑和数据,View负责数据的展示,而Controller处理用户请求,协调...

    spring mvc学习笔记

    ### Spring MVC 学习笔记 #### 一、Spring MVC 核心组件与工作流程 **Spring MVC** 是 **Spring Framework** 的一个重要模块,主要用于构建基于 Web 的应用程序。它提供了简化 Web 开发的一系列功能,包括但不限于...

    spring MVC学习笔记

    **Spring MVC 学习笔记** Spring MVC 是 Spring 框架的一个模块,专门用于构建 Web 应用程序。它提供了一种模型-视图-控制器(Model-View-Controller)架构,帮助开发者处理请求、控制应用程序流程,并实现业务逻辑...

    Spring MVC 学习笔记(一)

    在本学习笔记中,我们将探讨 Spring MVC 的核心概念、配置、控制器、模型和视图的交互,以及如何使用它来处理用户请求。 ### 1. Spring MVC 核心组件 - **DispatcherServlet**:它是 Spring MVC 的前端控制器,...

    spring_mvc学习笔记

    在Spring MVC的学习过程中,了解和掌握其核心概念与机制至关重要。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序。在Spring 3.0.x版本中,Spring MVC进行了大量的改进,引入了许多新特性和优化,使其...

    Spring3 MVC 学习笔记 入门

    ### Spring3 MVC 学习笔记入门知识点解析 #### 一、Spring MVC 概念与架构 **Spring MVC** 是 Spring Framework 的一个重要模块,主要用于构建基于 Web 的应用。它实现了 Model-View-Controller(MVC)设计模式,...

    Spring MVC 配套资料

    "SpringMvc 学习笔记" 可能包含了关于这些概念的详细解释和实例,帮助读者深入理解 Spring MVC 的工作原理和实践技巧。代码示例则提供实战练习,让学习者能够动手操作,加深理解。 总之,Spring MVC 是 Java 后端...

    MVC-step-by-step 笔记 Part 1 | #spring #mvc

    **MVC 模式简介** MVC(Model-View-Controller)模式是一种广泛应用于Web应用程序设计的架构模式,它将应用程序分为三个主要组件...通过阅读"MVC-step-by-step"笔记,我们可以系统地学习和掌握Spring MVC的各个方面。

    Spring高级源码学习笔记.zip

    DispatcherServlet是入口点,ModelAndView封装了模型数据和视图名,而HandlerMapping和HandlerAdapter负责请求映射和处理器调用。深入源码,可以理解Spring MVC的请求流转过程。 另外,Spring还提供了对WebSocket、...

    springmvc学习笔记

    本学习笔记将深入探讨 Spring MVC 的核心概念、配置、控制器、模型绑定、视图解析以及与其他 Spring 组件的集成。 首先,Spring MVC 的核心概念包括 DispatcherServlet、HandlerMapping、HandlerAdapter、...

    spring_mvc-学习

    这个压缩包文件“spring_mvc-学习”显然包含了关于Spring MVC的学习资料,可能是教程、代码示例或笔记。 在Spring MVC中,主要概念包括: 1. **DispatcherServlet**:作为Spring MVC的前端控制器,负责接收HTTP...

    springMVC学习笔记

    ### SpringMVC学习笔记 #### 一、SpringMVC概述 **1.1 什么是SpringMVC** SpringMVC作为Spring Framework的一个重要组成部分,主要针对Web应用开发提供了一个功能全面的MVC(Model-View-Controller)框架。它是...

    Spring MVC学习笔记之Controller查找(基于Spring4.0.3)

    在Spring MVC框架中,Controller是核心...这个过程是Spring MVC实现请求分发和路由的基础,也是开发者理解和优化Spring MVC应用程序的重要环节。通过深入理解这些概念,我们可以更好地设计和调试我们的Web应用程序。

    SpringMVC笔记

    在实际开发中,SpringMVC 结合其他 Spring 模块和第三方工具,可以极大地提高开发效率。例如,Spring Boot 可以简化 SpringMVC 的配置,提供开箱即用的 Web 应用解决方案。IDEA 或 Eclipse 等集成开发环境提供了强大...

    SpringMvc学习笔记

    通过这个简单的学习笔记,你可以理解Spring MVC的基本架构和工作流程,为进一步深入学习和实践打下基础。在实际开发中,你还可以探索更多的功能,如注解驱动、数据绑定、异常处理、国际化、Ajax支持等,以构建更加...

    2023年SpringMVC学习笔记.doc

    同时,SpringMVC也需要配置HandlerMapping、HandlerAdapter和ViewResolver,以便支持多种类型的解决器和视图技术。 结论 SpringMVC是基于Java的Web应用程序框架,它提供了一个基于模型-视图-控制器(MVC)架构的...

    spring学习文档及源码笔记

    通过深入学习这些知识点,并结合提供的源码笔记,你可以更好地理解 Spring MVC 的设计模式和最佳实践,从而更高效地开发 Web 应用。此外,了解如何利用 Spring Boot 进行自动化配置和快速开发也是现代 Web 开发的...

Global site tag (gtag.js) - Google Analytics