news 2026/4/29 22:10:09

Spring Web MVC 入门秘籍:从概念到实践的快速通道

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Web MVC 入门秘籍:从概念到实践的快速通道

Spring Web MVC 入门秘籍:从概念到实践的快速通道
(2025–2026 最新风格,最适合快速上手)

这是一份极简但完整的 Spring Web MVC 入门指南,目标是让你在最短时间内理解核心概念、搭建第一个项目,并写出能用的接口。

第一步:先搞清楚 Spring Web MVC 到底是什么

一句话定义:

Spring Web MVC 是 Spring 框架提供的基于 Servlet 的 Web 层 MVC 框架,目前仍然是 Java 后端最主流的 Web 开发技术栈之一。

核心思想:“请求 → 控制器 → 业务 → 视图/响应”

经典流程图(文字版):

浏览器请求 → DispatcherServlet(前端控制器) ↓ HandlerMapping(找控制器方法) ↓ HandlerAdapter(执行控制器方法) ↓ Controller(你的 @RestController / @Controller) ↓ 返回 ModelAndView 或 ResponseEntity / @ResponseBody ↓ ViewResolver(视图解析)或直接写 JSON ↓ 响应给浏览器

第二步:最核心的 8 个概念(背下来就入门了)

序号概念通俗解释对应注解/类是否必会
1DispatcherServletSpring MVC 的“大脑”,所有请求都先到它web.xml 或 SpringBoot 自动配置★★★★★
2@Controller声明这是一个控制器(返回视图)@Controller★★★★☆
3@RestController控制器 + 所有方法默认 @ResponseBody(返回 JSON)@RestController★★★★★
4@RequestMapping映射请求路径、方法(GET/POST 等)@GetMapping / @PostMapping 等★★★★★
5@RequestParam接收查询参数 / 表单参数@RequestParam★★★★☆
6@PathVariable接收 URL 路径中的变量@PathVariable★★★★☆
7@RequestBody接收 JSON 请求体@RequestBody★★★★★
8Model / ModelAndView向视图传递数据(传统视图用得多)Model.addAttribute()★★★☆☆

第三步:Spring Boot 项目快速搭建(推荐方式)

方式一:使用 Spring Initializr(最快)

  1. 打开:https://start.spring.io
  2. 选择:
    • Project:Maven / Gradle
    • Language:Java
    • Spring Boot:3.3.x 或 3.4.x
    • Dependencies:Spring Web
  3. 生成 → 解压 → 用 IDEA 打开

方式二:IDEA 直接创建

New Project → Spring Initializr → 选 Spring Web → Finish

第四步:第一个能跑的 Hello World(Restful 接口)

// HelloController.javaimportorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassHelloController{@GetMapping("/hello")publicStringsayHello(@RequestParam(value="name",defaultValue="World")Stringname){return"Hello, "+name+"!";}@GetMapping("/user/{id}")publicStringgetUser(@PathVariableLongid){return"User ID: "+id;}}

访问:

  • http://localhost:8080/hello → Hello, World!
  • http://localhost:8080/hello?name=Tom → Hello, Tom!
  • http://localhost:8080/user/123 → User ID: 123

第五步:接收 JSON 参数(最常用场景)

// User.java(DTO)publicclassUser{privateLongid;privateStringusername;privateIntegerage;// getter / setter / toString}// Controller@PostMapping("/users")publicResponseEntity<User>createUser(@RequestBodyUseruser){// 模拟保存user.setId(100L);returnResponseEntity.ok(user);}

Postman 测试 body(raw json)

{"username":"alice","age":25}

返回:

{"id":100,"username":"alice","age":25}

第六步:必会的高频注解组合速查表

场景推荐写法说明
GET 查询参数@GetMapping + @RequestParam查询字符串
GET 路径参数@GetMapping("/users/{id}") + @PathVariableRESTful 风格
POST JSON@PostMapping + @RequestBody最常见创建接口
PUT 更新@PutMapping + @RequestBody整体更新
PATCH 部分更新@PatchMapping + @RequestBody局部更新
DELETE@DeleteMapping("/users/{id}")删除资源
返回状态码 + 数据ResponseEntity.ok()/.created()推荐方式
文件上传@PostMapping + @RequestPart("file") MultipartFile file上传场景

第七步:常见新手坑 & 解决方案

  1. 启动类没扫描到 Controller
    确保启动类在根包下,或使用@ComponentScan("com.your.base.package")

  2. @RequestBody 接收不到数据
    检查 Content-Type 是否为application/json
    检查 DTO 是否有无参构造 + getter/setter

  3. 返回 JSON 中字段为 null 不显示
    默认不显示 null,可加@JsonInclude(Include.ALWAYS)

  4. 跨域问题(CORS)
    最快解决:加@CrossOrigin或全局配置 CorsFilter

第八步:推荐的进阶学习路径(快速上手后)

  1. @ControllerAdvice + @ExceptionHandler统一异常处理
  2. @Valid + BindingResult参数校验
  3. ResponseEntity精细控制响应
  4. RestTemplate / WebClient调用下游接口
  5. 拦截器(HandlerInterceptor)过滤器(Filter)的区别
  6. 了解Spring Boot Actuator暴露端点

最后总结:一句话快速记住 Spring Web MVC

Spring Web MVC 的本质就是:DispatcherServlet 接收所有请求 → 根据路径找到你的 @RestController 方法 → 执行方法 → 返回数据/视图 → 响应浏览器。

记住这 8 个核心注解 + 一个流程,你就已经入门了。

需要我现在帮你写一个带异常处理、参数校验、分页查询、统一响应格式的完整小 Demo 吗?
或者想深入某个具体点(比如文件上传、统一响应封装、CORS、拦截器)?
直接告诉我,我可以继续展开!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:38:12

深入TensorFlow Data API:构建高效数据管道的艺术与科学

深入TensorFlow Data API&#xff1a;构建高效数据管道的艺术与科学 引言&#xff1a;为什么Data API是机器学习系统的"隐形引擎" 在深度学习项目中&#xff0c;我们常常关注模型架构的复杂性、算法的创新性以及训练策略的先进性&#xff0c;然而一个常被忽视的关键…

作者头像 李华
网站建设 2026/4/22 21:26:38

Qt图像处理利器:QPixmap类完全解析与实战指南

一、QPixmap类概述 QPixmap是Qt框架中用于处理图像的核心类之一,专门为在屏幕上显示图像而优化。与QImage不同,QPixmap针对显示性能进行了特殊优化,更适合在GUI线程中直接渲染。 1. 主要特点 显示优化:底层使用平台相关的图形系统 线程安全:可在GUI线程外创建,但只能在…

作者头像 李华