SpringMVC

浏览该分类下的所有文章

@EnableWebMvc:Spring MVC定制的双刃剑

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

Spring MVC 中@RequestParam与@RequestPart的区别详解

本文对 Spring MVC 中的 @RequestParam 与 @RequestPart 进行对比,阐明二者适用场景和底层实现差异。@RequestParam 通过 Servlet 的 request.getParameter() 读取 URL 查询串或 application/x‑www‑form‑urlencoded 表单字段,适合简单类型(String、int 等)和基本的 MultipartFile。@RequestPart 则依赖 MultipartResolver 与 HttpMessageConverter,针对 multipart/form‑data 的各 Part,能够根据 Content‑Type(如 application/json)将数据直接绑定为对象或文件,适用于复杂对象、JSON/XML 与文件的混合上传。文中给出典型代码示例,并给出选型建议:普通参数使用 @RequestParam,需按内容类型解析的 multipart 部分使用 @RequestPart。正确区分两者可提升代码可读性与健壮性。