SpringMVC 概念
1.Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量Web框架
2.使用了MVC架构模式的思想,将web层进行职责解耦
3.基于请求驱动指的就是使用请求-响应模型
4.框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
在使用SpringMVC之前,我们要先搞清楚MVC设计模式。MVC设计模式是一种设计思想。主要通过锋利模型、视图、控制器将应用程序角色中的业务逻辑从界面中解耦出来。允许单独改变而不相互影响。
SpringMVC实现原理
原理图:
实现流程:
-
用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
-
DispatcherServlet 对请求URL进行解析,得到URI,根据得到的URI调用HandlerMapping获取该Handler配置的所有相关对象,最后以HandlerExecutionChain对象的形式返回。
-
DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。
-
提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。
数据格式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。
数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。
-
Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
-
根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
-
ViewResolver 结合Model和View,来渲染视图;
Spring 和 SpringMVC的区别和联系
Spring:
Sprng就像一个强大的整合器,它本身提供了很多写好的功能,但是如果你不想用可以通过Spring整合其他的功能。
SpringMVC 其底层就是servlet。java代码和前端页面就是通过SpringMVC联系起来的。类似与struts2。
SpringMVC:
SpringMVC提供了一种轻度耦合的方式来开发web应用。
SpringMVC是Spring的一个模块,是一个web框架。通过DispatcherServlet, ModelAndView 和 ViewResolver,开发web应用变得很容易。
解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
补充:
SpringBoot:
SpringBoot实现了自动配置,降低了项目搭建的复杂度。
众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。
以上
@Fzxey