springMVC系列之源码分析前章——09

springMVC系列之源码分析前章——09

 

        摘要:从现在开始后面的一部分文章通过对springMVC的源码来对springMVC的启动过程、处理请求过程、和具体的类或者接口的作用、意义进行阐述、包括加载的过程、初始化的东西、以及类在其中扮演的角色及作用、还有一点点设计思想。写之前有点惶恐、自己水平一般、有理解不到位或者不对的地方、希望指正、不胜感激。源码是最新的版本4.0.2的版本。

 

一:springMVC特性


        1、可供人快速上手、通过简单的配置就可以使用springMVC(其内部提供一套默认配置来实现快速搭建)

        2、使用springIOC容器来盛放编程元素、struts2使用xwork来存放、

        3、springMVC则是依赖与Servlet容器元素来设计、Struts2采取的是一种完全和Web容器隔离和解耦的事件机制将参数完全剥离开来、下面的操作只与各种数据有关、而完全不当web容器存在。        

        4、springMVC的灵活性是无法想象的、可扩展性也是非常强、从分析的过程中就可以看出他处处体现着可扩展性。


二:关键的类、接口


         这里介绍的是那些被高度抽象出来的接口或者抽象类、先从全局对springMVC有个骨感的认识、鼠标放置的类一般是默认使用的类!

        1、DispatcherServlet:前端控制器、用于分发请求、和做出响应、是整个springMVC框架的核心、也是设计的核心。层次结构图:


                


        2、HandlerMapping:用于处理请求、关键是获取HandlerExcuteChain。下图中红圈标注的是现在已经弃用的类、但是为了向后兼容、仍可以使用、层次结构图:


                


        3、HandlerExecutionChain :包含具体的Handler(即我们使用@Controller注释的并且被扫描的类)和一个或者多个或者没有的HandlerInterceptor 。层次结构图:


                                              


        4、HandlerInterceptor :过滤器、对一个请求在到达Handler之前、被Handler处理之后、和完成进行处理、AOP思想。层次结构图:


               


        5、HandlerAdapter:处理请求的映射、将一个请求映射到具体的被@Controller注解的类的方法中。处理完成后返回被渲染的视图、下图中红圈标注的是现在已经弃用的类、但是为了向后兼容、仍可以使用、。层次结构图:


               


        6、Controller:控制器、所谓的Handler、功能就像struts2中的Action如果是使用注解形式的springMVC、则这个接口没有被用到。

        7、ModelAndView:由Handler处理完成后、包含处理数据和视图的名称的一个对象。

        8、ViewResolver:把一个视图名交给到一个View来处理。层次结构图:


               


        9、View:由具体的View对象的render方法渲染视图。层次结构图:


               


补充:下面的文章将会从源码的角度对初始化过程、请求处理的过程来分析


更多内容: springMVC系列之目录——00


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。