SpringMVC原理&MVC设计思想

未分类 发表评论

什么是MVC

      MVC是一种架构模式 — 程序分层,分工合作,既相互独立,又协同工作

      MVC是一种思考方式 — 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑?

  MVC流程图如下图所示

 MVC核心思想:业务数据抽取同业务数据实现相分离

总结:

    模型层(M)       业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合

    视图层(V)       为用户提供UI,重点关注数据的呈现

    控制器(C)       接受用户请求,并调用相应的模型处理

                         (相当于一个总调配中心,有什么需求,就去调用相应模型进行处理,最后通过视图给用户进行展示)


SpringMVC的原理:

    1 首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),

    2 前端控制器根据用户的url,请求处理器映射器(HandlerMapping)查找匹配该url的handler,并返回一个执行链(HandlerExecutionChain),

    3 前端控制器再请求处理器适配器(HandlerAdapter)调用相应的handler进行处理并返回给前端控制器一modelAndView,  

    4 前端控制器再请求视图解析器(ViewResolver)对返回的逻辑视图进行解析,

    5 最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。


  注:DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户(分发调度)

 
补充

 
  为什么叫前端控制器?前端又是什么?

   举个例子:假如你去医院看病,通过向分诊台的医院描述自己的病情,就可以得到医生的指导具体去看外科、内科或者神经科等等,这里我们的分诊台就扮演着前端控制器(Dispatcher)的角色,也叫做调度器,而各个科室就扮演着控制器(Controller)的角色,因为分诊台是在具体各个科室之前,所以这个模式就叫做前端控制器。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *