1.1 Spring MVC基本概念

  1. DispatcherServlet
    前端控制器,前端用户的request申请通过DispatcherServlet分发给各个控制器来生成业务数据Model,再通过DispatcherServlet传递给View实现最终的页面出现。能够说Spring MVC将数据业务逻辑和页面出现拆散是通过DispatcherServlet实现的。
  2. HandlerAdapter
    Handler是DispatvherServlet外部应用的一个类,是DispatcherServlet调用Controller的一个两头过渡对象,能够看做是controller的一种表现形式,在Spring MVC中,通过各种annotation来辨认Controller,然而Spring MVC中没有相似于接口的controller或者interface来找到controller,最终controller以handler模式呈现。
    HandlerAdapter是适配器模式,将各种不同类型的handler适配成DispatcherServlet
    能够应用的handler,DispatcherServlet就能够很轻松的调用controller。
  3. HandlerInterceptor
    拦截器,在被拦挡对象的前后增加操作,这个接口有三种办法,preHandle,postHandle,afterCpmpletion。
  4. HandlerMapping
    Mapping就是DispatcherServlet和Controller之间映射关系的一品种,负责通知DispatcherServlet在一个申请到来之后由哪一个Controller来响应本次申请。
    在HandlerMapping工作结束之后,会给DispatcherServlet返回一个HandlerAdapter,其中包含的内容一方面是某一个Controller具体的实例,另一方面是Controller被包裹的HnadlerInterceptor,形成了一个执行的链条HandlerExecutionChain往下走。
  5. HandlerExecutionChain
  6. ModelAndView
    无论是Model还是Map,最终在DispatcherServlet中都会转换成ModelAndView,所以能够把ModelAndView看作Model的具体表现。