Spring Boot(三)Spring Boot整合SpringMVC

一、 中央转发器(DispatcherServlet)

实现方式
  • 自动配置类 :核心是 DispatcherServletAutoConfiguration,Spring Boot 启动时会自动检测并注册 DispatcherServlet 到 Servlet 容器(Tomcat/Jetty/Undertow)。
  • 默认配置
    • 默认映射路径:/(处理所有请求,除了静态资源)
    • 自动设置初始化优先级(保证先于其他 Servlet 初始化)
    • 自动绑定 Spring 容器上下文,无需手动关联
  • 自定义配置(application.yml):
XML 复制代码
spring:
  mvc:
    servlet:
      path: /api  # 自定义映射路径(如所有/api开头的请求由DispatcherServlet处理)
      load-on-startup: 1  # 启动时加载(默认1)

二、控制器(Controller)

实现方式
  • 核心注解
    • @Controller:标识控制器 Bean(返回视图)
    • @RestController@Controller + @ResponseBody(返回 JSON/XML,无视图)
    • @RequestMapping/@GetMapping/@PostMapping:映射请求路径 / 方法
  • 自动扫描 :Spring Boot 默认扫描@SpringBootApplication所在包及其子包下的@Controller/@RestController,无需手动注册控制器 Bean。

三、视图解析器(ViewResolver)

  • 默认装配的解析器 (优先级从高到低):
    1. ContentNegotiatingViewResolver:内容协商解析器(根据请求头Accept判断返回 JSON / 视图)
    2. InternalResourceViewResolver:JSP 视图解析器(默认前缀/WEB-INF/,后缀.jsp
    3. 若引入 Thymeleaf 依赖,自动装配ThymeleafViewResolver(替代 JSP,Spring Boot 首选)
  • 默认配置(application.yml):
XML 复制代码
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/  # JSP视图前缀
      suffix: .jsp             # JSP视图后缀
  thymeleaf:
    prefix: classpath:/templates/  # Thymeleaf模板路径(默认)
    suffix: .html                 # Thymeleaf后缀(默认)
    cache: false                  # 开发环境关闭缓存
复制代码
当我们做文件上传的时候我们也会发现multipartResolver是自动被配置好的
文件上传大小可以通过配置来修改
打开application.properties, 默认限制是10MB,我们可以任意修改

四、消息转换和格式化

负责 HTTP 请求 / 响应的序列化与反序列化(如 JSON、XML、表单数据),Spring Boot 自动配置主流转换器。

  • 装配的转换器
    • MappingJackson2HttpMessageConverter:JSON 转换器(默认,依赖 jackson-databind)
    • StringHttpMessageConverter:字符串转换器(默认编码 UTF-8)
    • FormHttpMessageConverter:表单数据转换器
  • 时间类型我们可以在配置文件修改
XML 复制代码
# jackson全局JSON格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
spring.jackson.serialization.write-dates-as-timestamps=false

# Spring MVC请求参数格式化
spring.mvc.format.date=yyyy-MM-dd
spring.mvc.format.datetime=yyyy-MM-dd HH:mm:ss
spring.mvc.format.time=HH:mm:ss
相关推荐
专注API从业者42 分钟前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
摇滚侠1 小时前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
古城小栈1 小时前
从 cargo-whero 库中,找到提升 rust 的契机
开发语言·后端·rust
keep one's resolveY1 小时前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
天空属于哈夫克32 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
摇滚侠3 小时前
VMvare 虚拟机 Oracle19c 安装步骤,远程连接 Oracle19c,百度网盘安装包
java·oracle
梁萌3 小时前
idea报错找不到XX包的解决方法
java·intellij-idea·启动报错·缺少包
Agent产品评测局3 小时前
生产排期与MES/ERP系统打通,实操方法详解 —— 2026企业级智能体自动化选型与实战指南
java·运维·人工智能·ai·chatgpt·自动化
阿丰资源3 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
IT_陈寒3 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端