@EnableWebMvc:Spring MVC定制的双刃剑
@EnableWebMvc是Spring MVC的核心开关,标志开发者接管所有MVC配置。它会覆盖Spring Boot的自动配置,导致静态资源、视图解析、消息转换、CORS等功能失效,常见表现为404、JSON 序列化错误或跨域请求被拦。解决方案是:在 Spring Boot 项目中尽量去掉 @EnableWebMvc,仅实现 WebMvcConfigurer;若必须使用,则必须手动配置资源处理、默认 Servlet、消息转换器、跨域映射等关键组件。文章还给出传统 Spring MVC 与文件上传的完整配置示例,并提供使用 @EnableWebMvc 的场景判断表、配置检查清单以及调试方式,帮助开发者在需要完全自定义时安全使用该注解。