• 01_SpringMVC介绍


    SpringMVC介绍

    欢迎关注公众号“小东方不败”

    0x01_SpringMVC技术的地位

    学习完Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那如何更好的构建上层的应用呢(比如web 应用),这便是SpringMVCSpring MVCSpringSpring Container CoreAOP等技术基础上,遵循上述Web MVC的规范推出的web开发框架,目的是为了简化Java栈的web开发。

    回到Spring的架构图

    image-20221106153130262

    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是一个类,它接收传入的请求并将其映射到正确的资源,例如控制器、模型和视图。

    image-20221106153542180

    • Model模型- 模型包含应用程序的数据。数据可以是单个对象或对象的集合。(Dao,pojo实体类)
    • Controller控制器- 控制器包含应用程序的业务逻辑。在这里,@Controller 注解用于将类标记为控制器。(在没有学习springMVC时,用Servlet来完成)
    • View视图- 视图以特定格式表示提供的信息。一般使用JSP+JSTL来创建视图页面。尽管 spring 还支持其他视图技术,例如 Apache Velocity、Thymeleaf 和 FreeMarker。
    • 前端控制器- 在 Spring Web MVC 中,DispatcherServlet 类用作前端控制器。它负责管理 Spring MVC 应用程序的流程。

    0x03_SpringMVC流程图

    image-20221106153846295

    • 如图所示,所有传入的请求都被作为前端控制器的 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采用了松耦合,可热插的主键结构,比其他的框架更具扩展性和灵活性
  • 相关阅读:
    RabbitMQ:发布确认模式
    3D-NAND向500层进发,天花板在哪里?
    ENVI图像镶嵌与匀色处理
    强化学习-DQN和AC算法
    ESP32系列--存储器类型和XIP特性
    使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
    HEAD detached from origin/...导致push失败
    使用Process Monitor工具监测进程对注册表和文件的操作
    【Java】若依前后端分离,分页数据为null报错
    数据结构-排序算法总结
  • 原文地址:https://blog.csdn.net/qq_51550750/article/details/127818525