在Java项目开发中,我们经常会用到Spring框架,SpringMVC和SpringBoot就是Spring家族的重要成员。很多新手在使用的过程中不清楚springmvc和springboot的区别,那今天我们就给大家讲解一下。
SpringMVC是基于Servlet的一个MVC框架;通过DispatcherServlet,ModelAndView,ViewResolver解决WEB开发问题;但是它的配置繁琐,需要大量的xml,properties文件,并且用maven管理的时候很容易出现jar包冲突;
SpringBoot是基于Spring的一套快速开发整合包,本身并不提供Spring框架的核心特性以及扩展功能;它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具;它不仅包含了SpringMVC,还包括Spring JPA,Spring Security等;还集成了大量常用的第三方库配置(Redis,Mongo,Mail,JDBC),懒人整合包(starter),使用这些第三方库几乎可以领配置的开箱即用;约定优于配置,简化了Spring的配置流程;
对使用者来说,使用SpringBoot后,项目初始化方法、配置文件变了,也无需单独安装tomcat服务容器,打jar包后就能运行,开发方式并没变化。
Spring是一个“引擎”;
Spring MVC是基于Spring的一个MVC框架;
Spring Boot是一套快速开发整合包;
springmvc执行流程是什么?
Spring MVC 执行流程如图所示:
1. 用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器);
2. 由 DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。
3. DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);
4. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
5. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
6. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;
7. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
8. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
9. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
10. 视图负责将结果显示到浏览器(客户端)。
这就是Spring MVC 执行流程,springmvc和springboot相比,SpringMVC简化我们日常Web开发的,而SpringBoot则进一步简化了SpringMVC开发。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: