Spring MVC原理_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Spring MVC原理

Spring MVC原理

 2015/4/22 15:18:25  zx_code  程序员俱乐部  我要评论(0)
  • 摘要:SpringMVC原理*注释:完整文章包括图片在附件,请下载1.在web.xml配置一个servlet,如下图,这个是针对所有请求都拦击,如果只想拦击自定义请求url-pattern可以写成*.do或者*.action,这些请求交给springmvc处理2.这个servlet1由DispatcherServlet处理,DispatcherServlet继承关系如下图,从这个继承关系我们知道这是标准的HttpServlet子类。3.Spring容器启动时会准备好所需的工具,主要初始化如下图。4
  • 标签:MVC Spring
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等等。
  • springMVC原理.rar (508.8 KB)
  • 下载次数: 2
发表评论
用户名: 匿名