SpringMVC
Spring MVC(Spring Model-View-Controller)是一个基于 Java 的 Web 应用框架,是 Spring Framework 的一部分。Spring MVC 的设计灵感来源于传统的 MVC(Model-View-Controller) 设计模式,它用于构建 web 应用程序,并且将应用程序的表现层与业务逻辑层分开,促进了松耦合的开发。
核心概念
- Model(模型)
- 表示应用程序的数据和业务逻辑,通常由 JavaBeans 或 POJO(Plain Old Java Object) 组成。
- 负责处理数据并返回给视图层(View)。
- View(视图)
- 负责呈现数据的界面层,通常是 JSP(JavaServer Pages)、Thymeleaf 或 FreeMarker 等模板。
- 视图层将显示由模型层提供的数据,并响应用户请求。
- Controller(控制器)
- 作为请求的入口点,接收并处理用户的请求,协调模型和视图之间的交互。
- Controller 接收来自用户的请求,调用相应的业务逻辑(如服务层),并决定应该呈现哪个视图。
工作流程:
用户通过浏览器发送请求到 DispatcherServlet(前端控制器)。
DispatcherServlet 将请求委派给合适的 Controller,该控制器处理业务逻辑。
控制器与 Model 交互,并将数据填充到 Model 中。
控制器返回一个逻辑视图名(例如 “home”),DispatcherServlet 根据视图解析器的配置,选择正确的视图(如 JSP 或 Thymeleaf)进行渲染。
最终,View 将数据呈现给用户。
关键组件:
- DispatcherServlet:作为前端控制器,所有请求都由它进行统一的分发。
- HandlerMapping:根据请求的 URL 映射到对应的控制器方法。
- Controller:处理业务逻辑,响应用户请求。
- ViewResolver:视图解析器,根据视图名称选择并渲染具体的视图。
- ModelAndView:封装了模型数据和视图信息的对象。
特点:
- 松耦合:Spring MVC 使用配置文件和注解解耦,便于灵活配置和扩展。
- RESTful 支持:支持构建 RESTful Web 服务。
- 易于集成:Spring MVC 可以与其他技术(如 Hibernate、MyBatis、JPA 等)集成,支持多种视图技术(JSP、Thymeleaf、FreeMarker 等)。
- 灵活性:通过注解驱动的方式,可以简化开发,减少 XML 配置。