SpringMVC介绍
欢迎关注公众号“小东方不败”
0x01_SpringMVC技术的地位
学习完Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那如何更好的构建上层的应用呢(比如web 应用),这便是SpringMVC
;Spring MVC
是Spring
在Spring Container Core
和AOP
等技术基础上,遵循上述Web MVC
的规范推出的web开发框架,目的是为了简化Java栈的web开发。
回到Spring的架构图:
SpringMVC对应的就是右上角的Web部分。
往往学习的顺序是:
- Core Container(IOC控制反转,DI依赖注入)
- AOP(面向切面编程)
- Data Source/Integration:JdbcTemplate,mybatis,Spring声明式事务
- Web:SpringMVC
0x02_SpringMVC的介绍
Spring MVC 是一个 Java 框架,用于构建 Web 应用程序。它遵循模型-视图-控制器设计模式。它实现了核心 Spring 框架的所有基本功能,例如控制反转、依赖注入。
Spring MVC 在DispatcherServlet的帮助下提供了一个优雅的解决方案,可以在 Spring 框架中使用 MVC 。在这里,DispatcherServlet是一个类,它接收传入的请求并将其映射到正确的资源,例如控制器、模型和视图。
- Model模型- 模型包含应用程序的数据。数据可以是单个对象或对象的集合。(Dao,pojo实体类)
- Controller控制器- 控制器包含应用程序的业务逻辑。在这里,@Controller 注解用于将类标记为控制器。(在没有学习springMVC时,用Servlet来完成)
- View视图- 视图以特定格式表示提供的信息。一般使用JSP+JSTL来创建视图页面。尽管 spring 还支持其他视图技术,例如 Apache Velocity、Thymeleaf 和 FreeMarker。
- 前端控制器- 在 Spring Web MVC 中,DispatcherServlet 类用作前端控制器。它负责管理 Spring MVC 应用程序的流程。
0x03_SpringMVC流程图
- 如图所示,所有传入的请求都被作为前端控制器的 DispatcherServlet 拦截。
- DispatcherServlet 从 XML 文件中获取处理程序映射的条目并将请求转发给控制器。
- 控制器返回一个 ModelAndView 对象。
- DispatcherServlet 检查 XML 文件中视图解析器的条目并调用指定的视图组件。
0x04_SpringMVC的有优点
- 分离角色(解耦)——Spring MVC 分离每个角色,其中模型对象、控制器、命令对象、视图解析器、DispatcherServlet、验证器等可以由专门的对象来实现。
- 轻量级- 它使用轻量级 servlet 容器来开发和部署您的应用程序。
- 强大的配置- 它为框架和应用程序类提供了强大的配置,包括跨上下文的轻松引用,例如从 Web 控制器到业务对象和验证器。
- 快速开发——Spring MVC 促进了快速和并行的开发。
- 可重用的业务代码——它允许我们使用现有的业务对象,而不是创建新的对象。
- 易于测试- 在 Spring 中,通常我们创建 JavaBeans 类,使您能够使用 setter 方法注入测试数据。
- 灵活的映射- 它提供了可以轻松重定向页面的特定注释。
0x05_总结
- SpringMVC是spring为展现层提供的基于MVC设计理念的优秀WEB框架,是目前最主流的MVC框架之一
- SpringMVC通过一套注解,可以让普通的JAVA类成为contrllor控制器,无需继承Servlet,实现了控制层和Servlet之间的解耦
- SpringMVC支持Rest风格的URL写法
- SpringMVC采用了松耦合,可热插的主键结构,比其他的框架更具扩展性和灵活性