什么是SpringMVC?
SpringMVC是一个实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过Model-View-Controller模式来很好地将数据、业务与视图进行分离。
Model指的是工程中的JavaBean,作用是处理数据;View指的是工程中的html或jsp等页面,作用是与用户进行交互,展示数据;C指的是工程中的Servlet,作用是接收请求和响应浏览器。
SpringMVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler处理并返回响应。
SpringMVC配置清晰,灵活度高,定制能力强。
SpringMVC的架构和处理流程?
架构
- DispatcherServlet:前端控制器,作为统一访问点,进行全局的流程控制
- HandlerMapper:处理映射器,把请求映射到对应的处理器对象上
- Controller:处理器,处理请求,并返回相应的视图
- ViewResolver:视图解析器,解析视图
- View:视图
处理流程
(1)首先浏览器发送请求到DispatherServlet,前端控制器收到请求后调用HandlerMapping;
(2)处理映射器根据请求找到具体的处理器,生成处理器对象(如果有拦截器则一并生成),返回给DispatchServlet;
(3)DispatchServlet调用处理器Controller来处理请求,返回ModelAndView给DispatchServlet;
(4)DispatchServlet将ModelAndView传给视图解析器ViewResolver,解析后返回具体的View;
(5)DispathcServlet将模型数据传给View,然后View进行渲染;
(6)返回控制权给DispatchServlet,由前端控制器返回响应给用户。
SpringMVC和Spring-Boot的区别?
SpringMVC是Spring的一个模块,是一个Web框架,解决的问题领域是:网站应用程序或者服务开发等。
Spring就像一个大家族,有众多衍生产品例如Boot、Sercuirity等,
但它们的基础都是Spring的IoC和AOP,IoC提供了依赖注入的容器,
而AOP解决了面向切面的编程,在此基础上实现了其他衍生产品的高级功能;
但是Spring的配置非常复杂,各种xml,properties处理起来比较繁琐,
于是为了简化开发者的使用,Spring社区创造性地推出了Srping Boot,
它遵循约定优于配置,极大降低了Spring使用门槛,但又不失Spring原本灵活强大的功能。
换句话说,Spring Boot并不是用来替代Spring的解决方案,而是和Spirng框架紧密结合
用于提升Spring开发者体验的工具,同时,它集成了大量常用的第三方库配置
(例如Jackson、JDBC、Redis等),Spring Boot中应用这些第三方库几乎可以零配置的开箱即用。
大部分Srping Boot应用都只需要非常少量的配置代码,开发者能够更专注于业务逻辑。