Spring MVC的基本概念

  1. Spring MVC 的核心概念

Spring MVC 是基于 MVC 设计模式的框架,其核心组件包括:

  • Controller(控制器):接收用户请求,处理业务逻辑,并返回视图名称或数据。

  • Model(模型):封装数据,通常是一个 JavaBean,用于在控制器和视图之间传递数据。

  • View(视图):负责展示数据,通常是 JSP、Thymeleaf 或其他模板引擎生成的页面。

2. Spring MVC 的工作流程

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

  2. DispatcherServlet 根据请求信息调用 HandlerMapping 来查找 Handler(Controller)。

  3. HandlerMapping 返回 Handler 的执行链(包括拦截器)。

  4. DispatcherServlet 调用 HandlerAdapter 来执行 Handler。

  5. HandlerAdapter 调用 Handler,并返回一个 ModelAndView 对象。

  6. DispatcherServlet 根据 ModelAndView 中的视图信息,调用 ViewResolver 解析视图。

  7. ViewResolver 返回具体的 View。

  8. DispatcherServlet 将数据填充到 View 中,并渲染视图。

  9. 最终将响应返回给用户。

3. Spring MVC 的核心组件

  • DispatcherServlet:前端控制器,是整个 Spring MVC 的核心。它负责接收请求、分发请求到对应的处理器,并返回响应。

  • HandlerMapping:处理器映射器,用于根据请求信息(如 URL、HTTP 方法等)找到对应的处理器(Controller)。

  • HandlerAdapter:处理器适配器,用于执行处理器(Controller)的方法,并返回一个 ModelAndView 对象。

  • ViewResolver:视图解析器,用于将逻辑视图名称解析为具体的视图实现(如 JSP 页面)。

  • Controller:控制器,用于处理用户请求,执行业务逻辑,并返回视图或数据。

4. Spring MVC 的配置

Spring MVC 的配置可以通过 XML 配置文件或注解来完成。以下是常见的配置方式:

基于注解的配置
  1. @Controller:标记一个类为控制器。

  2. @RequestMapping:用于映射请求到控制器方法。

  3. @RequestParam:用于绑定请求参数到方法参数。

  4. @PathVariable:用于绑定 URL 中的占位符到方法参数。

  5. @ModelAttribute:用于将方法参数绑定到模型中。

  6. @ResponseBody:用于将方法返回值直接写入 HTTP 响应体。

  7. @RestController:用于定义 RESTful 风格的控制器,相当于 @Controller + @ResponseBody。

基于 XML 的配置

web.xml 中配置 DispatcherServlet:

xml复制

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

dispatcher-servlet.xml 中配置组件扫描和视图解析器:

xml复制

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="...">

    <context:component-scan base-package="com.example.controller" />
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

5. Spring MVC 的优点

  1. 松耦合:通过注解和配置文件,实现了控制器、模型和视图之间的低耦合。

  2. 易于测试:控制器方法可以独立于 Servlet API 进行测试。

  3. 高度灵活:支持多种视图技术(如 JSP、Thymeleaf、Freemarker)。

  4. 与 Spring 框架无缝集成:可以方便地与其他 Spring 模块(如 Spring Data、Spring Security)集成。

  5. 支持 RESTful 风格的开发:通过注解和配置,可以轻松开发 RESTful 风格的 Web 应用。

6. Spring MVC 的应用场景

Spring MVC 适用于各种基于 Java 的 Web 应用开发,尤其是企业级应用。它支持传统的 Web 应用开发和 RESTful 风格的 API 开发。

使用Spring JDBC模板(JdbcTemplate)集成数据库

Spring JDBC模板是Spring提供的一个简化数据库操作的工具,它封装了JDBC的复杂操作,使得开发者可以更方便地执行SQL语句。步骤1:配置数据源(DataSource),步骤2:配置JdbcTemplate,步骤3:在Service层或DAO层使用JdbcTemplate

总结

Spring MVC 是一个功能强大且灵活的 Web 开发框架,通过 MVC 设计模式实现了代码的清晰分层和低耦合。它与 Spring 框架的其他模块紧密集成,提供了丰富的功能和高度的可扩展性。

相关推荐
二十七剑1 小时前
jvm中各个参数的理解
java·jvm
东阳马生架构2 小时前
JUC并发—9.并发安全集合四
java·juc并发·并发安全的集合
计算机小白一个3 小时前
蓝桥杯 Java B 组之岛屿数量、二叉树路径和(区分DFS与回溯)
java·数据结构·算法·蓝桥杯
White graces3 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
菠菠萝宝3 小时前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
不会Hello World的小苗3 小时前
Java——链表(LinkedList)
java·开发语言·链表
Allen Bright3 小时前
【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程
java·开发语言
柃歌4 小时前
【UCB CS 61B SP24】Lecture 7 - Lists 4: Arrays and Lists学习笔记
java·数据结构·笔记·学习·算法
柃歌4 小时前
【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
java·数据结构·笔记·学习·算法
是姜姜啊!4 小时前
redis的应用,缓存,分布式锁
java·redis·spring