SpringBoot 分析: Spring MVC模块解析

        SpringBoot是基于Spring和Spring MVC来实现的。
        Spring MVC是Spring的一部分。Spring MVC主要是用来开发web应用和网络接口,它是Spring的一个模块,通过一些预定义的组件,让web应用的开发就得更加容易。Spring MVC 它提供了 DispatchServlet 、ModelAndView 、ViewResolver ,利有这些组件,再增加一些业务代码(Service、Controller、Model等等),生成一个war包,再通过Web容器进行部署和启动。
Spring MVC运行原理:

 

  1.    HTTP请求。首先一个客户端对我们的应用程序(Spring MVC的web程序)发起请求 ,最先到达 DispatchServlet ,DispatchServlet 是Spring提供的前端控制器,所有的请求都由它来分发,DispatchServlet 将请求分发给Spring Controller之前,需要借助于Spring提供的 HandlerMapping 。
  2.    寻找处理器。HandlerMapping 来定位到具体的 Controller 。HandleMapping 可以拆分出来(Handle 、 Mapping),Handle 就是要找寻具体的处理方法,Mapping 就是要找到对应的,我们需要处理的方法。 HandleMapping 同样也是Spring MVC提供的一个组件。
  3.    调用处理器。DispatchServlet 找到了所需要的 Controller ,就需要将请求提交给Controller 。Controller 是需要为并发用户处理用户的请求,因此需要它实现 Controller 接口,必须保证它是线程安全,并且是可重用的。 
  4.    调用业务处理服务。找到 Controller 后,Controller 会调用我们所编写的业务处理 Service( 服务)。
  5.    得到处理结果。在Service 里面会返回 ModelAndView 给到前端控制器 (DispatchServlet)。ModelAndView 包含两部分,一个是Model(数据),一个是View(视图信息)。
  6.    处理视图映射。DispatchServlet 得到处理结果后,会去查询一个或者多个视图的映射ViewResolver( 视图解析器),找到 ModelAndView 指定的视图。
  7.   模型数据传递到 view 层。然后对 Model (数据)进行渲染,得到一个View 。
  8.   HTTP响应。最后返回给客户端(也就是返回了HTTP响应)。

      这样一整个的流程就是 Spring MVC 的流程。 

    【3、4、5、6、7、8 步:DispatchServlet 找到了所需要的 Controller ,就需要将请求提交给Controller 。Controller 是需要为并发用户处理用户的请求,因此需要它实现 Controller 接口,必须保证它是线程安全,并且是可重用的。 找到 Controller 后,Controller 会调用我们所编写的业务处理 Service( 服务)。在Service 里面会返回 ModelAndView 给到前端控制器 (DispatchServlet)。ModelAndView 包含两部分,一个是Model(数据),一个是View(视图信息)。DispatchServlet 得到处理结果后,会去查询一个或者多个视图的映射ViewResolver( 视图解析器),找到 ModelAndView 指定的视图,然后对 Model (数据)进行渲染,得到一个View ,最后返回给客户端(也就是返回了HTTP响应)。 这样一整个的流程就是 Spring MVC 的流程。】

       
       DispachServlet 是 Spring MVC的核心。它负责接收HTTP请求,然后组织协调Spring MVC和各个组件,组成部分。它的主要功能有三项:

  1.  去捕获符合特定格式的URL请求(一定的规则去验证)。
  2.  初始化 DispachServlet 的上下文,然后执行各个逻辑 。
  3.  初始化 Spring MVC 的各个组成部件,装配到 DispachServlet 中(比如 HandleMapping、Controller 、ModelAndView 、ViewResolver) 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值