SpringBoot整合SpringMVC全解析

Spring Boot 与 Spring MVC 的整合本质上是自动完成的,因为 Spring Boot 默认内嵌了对 Spring MVC 的支持。以下是关键要点:


核心机制:自动配置

Spring Boot 通过 spring-boot-starter-web 依赖自动配置 Spring MVC 的核心组件:

XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

此依赖包含:

  • DispatcherServlet(自动注册)
  • 默认视图解析器
  • 静态资源处理(如 /static/**
  • 消息转换器(如 JSON 支持)

自定义配置(可选)

若需覆盖默认行为,可通过以下方式:

1. 配置类继承 WebMvcConfigurer
java 复制代码
@Configuration
public class WebConfig implements WebMvcConfigurer {

    // 注册拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthInterceptor());
    }

    // 自定义视图解析
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/", ".jsp");
    }
}
2. 配置文件修改参数

application.yml 中调整默认值:

yaml 复制代码
spring:
  mvc:
    static-path-pattern: /resources/**  # 修改静态资源路径
    view:
      prefix: /templates/
      suffix: .html

控制器示例

Spring MVC 的 @Controller 可直接使用:

java 复制代码
@RestController
@RequestMapping("/api")
public class UserController {

    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.findAll();
    }
}

常见扩展场景

需求 实现方式
全局异常处理 @ControllerAdvice + @ExceptionHandler
自定义消息转换器 重写 configureMessageConverters()
跨域配置 @CrossOriginaddCorsMappings()

总结

Spring Boot 通过 约定优于配置 简化了 Spring MVC 的整合:

  • 默认配置开箱即用
  • 通过接口/注解灵活定制
  • 无需手动配置 web.xmlDispatcherServlet

提示:需避免同时使用 @EnableWebMvc 注解,否则会禁用自动配置。

相关推荐
希望永不加班9 分钟前
SpringBoot 集成测试:@SpringBootTest 与 MockMvc
java·spring boot·后端·log4j·集成测试
enAn_13 分钟前
对照片和视频文件名,程序追加日期,直观看
java·maven
uzong13 分钟前
软件人员可以关注的 Skill,亲测确实不错,值得试一下
人工智能·后端
掘金虾16 分钟前
Hono 框架入门到实战:用 Node.js 写一个支持工具调用的流式对话 Agent
后端
用户83562907805118 分钟前
Python 自动拆分 Word 文档教程:按分节符与分页符处理
后端·python
yaaakaaang20 分钟前
六、适配器模式
java·适配器模式
树獭叔叔22 分钟前
Claude Code 工具系统深度剖析:从静态注册到动态发现
后端·aigc·openai
bobasyu27 分钟前
Claude Code 源码笔记 -- queryLoop
java·笔记·spring
树獭叔叔38 分钟前
Claude Code 的上下文管理:多层渐进式压缩架构深度解析
后端·aigc·openai
计算机学姐38 分钟前
基于SpringBoot的高校竞赛管理系统
java·spring boot·后端·spring·信息可视化·tomcat·mybatis