0%

SpringMVC

SpringMVC

Spring MVC(Spring Model-View-Controller)是一个基于 Java 的 Web 应用框架,是 Spring Framework 的一部分。Spring MVC 的设计灵感来源于传统的 MVC(Model-View-Controller) 设计模式,它用于构建 web 应用程序,并且将应用程序的表现层与业务逻辑层分开,促进了松耦合的开发。

核心概念

  1. Model(模型)
  • 表示应用程序的数据和业务逻辑,通常由 JavaBeansPOJO(Plain Old Java Object) 组成。
  • 负责处理数据并返回给视图层(View)。
  1. View(视图)
  • 负责呈现数据的界面层,通常是 JSP(JavaServer Pages)ThymeleafFreeMarker 等模板。
  • 视图层将显示由模型层提供的数据,并响应用户请求。
  1. Controller(控制器)
  • 作为请求的入口点,接收并处理用户的请求,协调模型和视图之间的交互。
  • Controller 接收来自用户的请求,调用相应的业务逻辑(如服务层),并决定应该呈现哪个视图。

工作流程:

  1. 用户通过浏览器发送请求到 DispatcherServlet(前端控制器)。

  2. DispatcherServlet 将请求委派给合适的 Controller,该控制器处理业务逻辑。

  3. 控制器与 Model 交互,并将数据填充到 Model 中。

  4. 控制器返回一个逻辑视图名(例如 “home”),DispatcherServlet 根据视图解析器的配置,选择正确的视图(如 JSP 或 Thymeleaf)进行渲染。

  5. 最终,View 将数据呈现给用户。

    image-20241225141556768

关键组件:

  • DispatcherServlet:作为前端控制器,所有请求都由它进行统一的分发。
  • HandlerMapping:根据请求的 URL 映射到对应的控制器方法。
  • Controller:处理业务逻辑,响应用户请求。
  • ViewResolver:视图解析器,根据视图名称选择并渲染具体的视图。
  • ModelAndView:封装了模型数据和视图信息的对象。

特点:

  • 松耦合:Spring MVC 使用配置文件和注解解耦,便于灵活配置和扩展。
  • RESTful 支持:支持构建 RESTful Web 服务。
  • 易于集成:Spring MVC 可以与其他技术(如 Hibernate、MyBatis、JPA 等)集成,支持多种视图技术(JSP、Thymeleaf、FreeMarker 等)。
  • 灵活性:通过注解驱动的方式,可以简化开发,减少 XML 配置。