`
zx_code
  • 浏览: 98959 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring MVC原理

    博客分类:
  • Java
阅读更多
Spring MVC原理


*注释:完整文章包括图片在附件,请下载


1. 在web.xml配置一个servlet,如下图,这个是针对所有请求都拦击,如果只想拦击自定义请求url-pattern可以写成*.do或者*.action,这些请求交给spring mvc处理

2. 这个servlet1由DispatcherServlet处理,DispatcherServlet继承关系如下图,从这个继承关系我们知道这是标准的HttpServlet子类。


3.Spring容器启动时会准备好所需的工具,主要初始化如下图。

4.初始化上传文件的视图

5.初始化HandlerMappings,用来存放controller层@RequestMapping()的映射地址,这个很重要。

通过调试可以看到handlerMappings保存对象

6.初始化handlerAdapters,这个很重要,主要是http请求交给那个处理。


handlerAdapters初始化保存对象

7. 初始化initViewResolvers,主要是初始化视图如jsp或者freemarker和velocity等等。

8,由于继承HttpServlet,所以每个请求的入口时doGet或doPost方法,FrameworkServlet类入口。

9.然后由processRequest处理完交给DispatcherServlet的doService方法处理。
10. 然后有doDispatch处理,如下图。

mappedHandler = getHandler(processedRequest);针对每个http请求,从如下图

找到一个合适的mappedHandler 。
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());针对每个http请求,从如下图

找到一个适配器HandlerAdapter ,用来处理http请求。
11.RequestMappingHandlerAdapter,这个类初始化的时候需要准备一些工具,如下图,afterPropertiesSet方法准备好argumentResolvers和returnValueHandlers还有initBinderArgumentResolvers。

12.argumentResolvers参数请求处理,如下图

通过这个方法,我们知道参数请求注入了很多类,这些类用来处理请求参数,从http请求参数到java对象都使用这些注入的类处理,其中自己也可以写一些类处理。使用注解的形式使用这些类。
13.returnValueHandlers返回对象的处理。如下图

放回对象的处理,返回对象如果使用如上图的注解,则会使用上图对应的注入对象处理。

14. invokeHandleMethod方法,处理请求,如下图。

ServletInvocableHandlerMethod requestMappingMethod = createRequestMappingMethod(handlerMethod, binderFactory);
这个方法针对每个请求new一个对象ServletInvocableHandlerMethod处理具体哪个类哪个方法处理http请求。

15.ServletInvocableHandlerMethod处理http请求。

16. ServletInvocableHandlerMethod的getMethodArgumentValues方法根据用户自定义的参数,选择合适的argumentResolvers解析参数,从http到java转换。

17.返回结果,从returnValueHandlers找到合适的对象解析返回的结果,可能是json或者xml等等。
分享到:
评论

相关推荐

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    **Spring MVC原理:** Spring MVC是Spring框架的一部分,它遵循MVC模式,提供了处理HTTP请求的DispatcherServlet。DispatcherServlet接收请求后,根据请求URL和方法找到对应的HandlerMapping,然后调用对应的Handler...

    第三课:spring mvc 原理深度解析1

    本课程将深入讲解 Spring MVC 的核心原理和组件,特别是 HandlerAdapter 的作用。 首先,让我们回顾 MVC 应用场景。在传统的 Servlet 和 JSP 结合的开发模式中,请求首先到达 Servlet,Servlet 处理业务逻辑,然后...

    _第一课:spring mvc 原理深度解析1

    在本课中,我们将深入解析Spring MVC的工作原理。 首先,我们来看看Spring MVC的核心功能特性: 1. **基于注解的URL映射**:开发者可以直接在控制器类的方法上使用`@RequestMapping`注解,定义URL与处理方法的对应...

    spring mvc案例+配置+原理详解+架包

    这个压缩包包含了关于Spring MVC的案例、配置和原理的详细资料,对于初学者来说,是深入理解该框架的良好资源。 一、Spring MVC 基本概念 1. **模型-视图-控制器(MVC)**:MVC是一种设计模式,将业务逻辑、数据...

    Spring MVC jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    如果面试问你Spring MVC的原理

    理解这些核心概念并能够解释它们之间的交互关系,是掌握Spring MVC原理的关键。在面试中,你可能还需要讨论如何优化Spring MVC应用,例如使用缓存、AOP(面向切面编程)以及如何进行性能测试和调优等。此外,了解...

    Spring MVC使用Demo

    这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式基于Model-View-Controller(MVC),它将应用程序的业务逻辑、数据和...

    SpringMVC 原理及配置详解Demo

    在"Spring MVC原理及配置详解.txt"和"SpringMVC"文件中,可能包含了更详细的原理介绍、配置示例和实际的代码样例,供学习者深入理解SpringMVC的运作机制和实践应用。 通过以上内容,你可以了解到SpringMVC的基本...

    spring mvc mybatis 整合源码,带数据库脚本,带详细注释

    Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...

    Spring MVC 简单Demo

    下面,我们将深入探讨Spring MVC的核心概念、工作原理以及如何创建一个简单的示例。 1. **Spring MVC 概述** Spring MVC是Spring框架的一部分,用于处理HTTP请求和响应。它采用Model-View-Controller(MVC)设计...

    spring-MVC.zip_Java spring mvc_spring mvc_spring mvc

    对于初学者来说,这是一份很好的实践指南,可以帮助理解Spring MVC的工作原理,并快速上手开发基于Spring MVC的Web应用。通过阅读和实践这份教程,你可以掌握Spring MVC的基本使用,为进一步深入学习和应用Spring...

    spring MVC配置详解

    要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC 环境搭建 1. jar 包引入 在使用 Spring MVC 之前,需要引入相应的 jar 包,包括 Spring 2.5.6 和 Hibernate ...

    开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp

    Spring MVC源码的深入理解有助于开发者更好地掌握框架的工作原理,优化代码性能,甚至为自定义扩展提供基础。 压缩包内的文件"www.pudn.com.txt"可能是一个链接或说明文档,指向更多关于该主题的资源,例如在pudn....

    spring MVC简单示例

    这个"spring MVC简单示例"是为了帮助初学者理解Spring MVC的基本工作原理和配置,通过实践这个例子,你可以了解到如何创建一个简单的Controller、配置视图解析器并建立一个基本的请求处理流程。随着对Spring MVC的...

    spring mvc集成webservice

    Spring MVC 是一个强大的Java Web开发框架,用于构建可维护、...通过理解Spring MVC的MVC模式,掌握Web服务的基本原理,以及学习如何在Spring环境中配置和调用Web服务,开发者可以构建更加灵活和可扩展的Web应用程序。

    Mastering Spring MVC 3中文版

    《Mastering Spring MVC 3中文版》是一本深入解析Spring MVC框架的专业书籍,它涵盖了Spring MVC的核心概念、设计原理以及实际应用。Spring MVC是Spring框架的一部分,主要用于构建Web应用程序的模型-视图-控制器...

Global site tag (gtag.js) - Google Analytics