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。正确区分两者可提升代码可读性与健壮性。