当前位置:首页 > 开发 > 编程语言 > Spring > 正文

Spring MVC原理

发表于: 2015-04-22   作者:zx_code   来源:转载   浏览:
摘要: Spring MVC原理 *注释:完整文章包括图片在附件,请下载 1. 在web.xml配置一个servlet,如下图,这个是针对所有请求都拦击,如果只想拦击自定义请求url-pattern可以写成*.do或者*.action,这些请求交给spring mvc处理 2. 这个servlet1由DispatcherServlet处理,DispatcherServlet继承
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等等。

Spring MVC原理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1
Spring MVC就是一个框架,个人认为做得要比Structs2的要好一些儿(仁者见仁,智者见智)。Spring MV
文章来自http://jinnianshilongnian.iteye.com/blog/1594806 1:使用spring mvc 的好处 √让我们能
Spring MVC 原理 Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器、视图解析器、视图
转自:http://www.open-open.com/lib/view/open1365861546828.html Spring MVC工作流程图 图一 <
Spring MVC 主要包括以下要点: 1 :由DispatcherServlet 控制的整个流程; 2 :注解驱动的控制器,
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号