一、什么是 Spring MVC
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring 框架中。它的正式名称 "Spring Web MVC" 来自其源模块的名称 (Spring-webmvc),但它通常被称为"Spring MVC"。
什么是Servlet呢?
Servlet 是一种实现动态页面的技术。准确来讲Servlet是一套 Java Web 开发的规范,或者说是一套 Java Web 开发的技术标准。所谓实现 Servlet 规范,就是真正编写代码去实现Servlet 规范提到的各种功能,包括类、方法、属性等。
Servlet 规范是开放的,除了 Sun 公司,别人也可以实现 Servlet 规范,目前常见的实现了 Servlet 规范的产品包括 Tomcat、Weblogic、Jetty、Jboss、WebSphere 等,它们都被称
为"Servlet 容器"。Servlet 容器用来管理编写的 Servlet 类。
由上述可知:Spring Web MVC 是一个 Web 框架,简称为Spring MVC。
Spring MVC 项目创建和 Spring Boot 创建项目相同,在创建的时候选择 Spring Web 就相当于创建了 Spring MVC 的项目。
二、Spring MVC 注解
- @RequestMapping 注解
@RequestMapping 是 Spring Web MVC 应用程序中最常被用到的注解之一,它是用来注册接口的
路由映射的。
路由映射:当用户访问一个 URL 时, 将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射。
@RequestMapping 既可修饰类,也可以修饰方法 ,当修饰类和方法时,访问的地址是类路径 + 方法路径。
@RequestMapping标识一个类:设置映射请求的请求路径的初始信息;
@RequestMapping标识一个方法:设置映射请求请求路径的具体信息。
- @RestController
当 Spring Boot 应用程序接收到 HTTP 请求时,它会查找与请求 URL 匹配的 @RestController 控制器。如果找到了匹配的控制器,Spring Boot 将调用匹配方法并将其返回值转换为 JSON 或 XML 响应体,并将其发送回客户端。
@RestController 注解的原理是使用 Spring MVC 框架来处理 HTTP 请求和响应。Spring MVC 框架使用 @RequestMapping 注解将请求 URL 映射到控制器方法,并使用 @ResponseBody 注解将方法返回的对象转换为响应体。@RestController 注解是 @Controller 和 @ResponseBody 注解的组合,可以方便地实现 RESTful API。
- @RequestParam
某些特殊的情况下,前端传递的参数 key 和我们后端接收的 key 可以不一致,比如前端传递了一个 time 给后端,而后端是使用 createtime 字段来接收的,这样就会出现参数接收不到的情况,如果出现这种情况,我们就可以使用 @RequestParam 来重命名前后端的参数值。 - @RequestBody
接收JSON对象, 需要使用 @RequestBody 注解。
RequestBody: 请求正文,意思是这个注解作用在请求正文的数据绑定,请求参数必须在写在请求正文中。
@ResponseBody 既是类注解,又是方法注解。如果作用在类上, 表示该类的所有方法, 返回的都是数据, 如果作用在方法上, 表示该方法返回的是数据。 - @PathVariable
path variable: 路径变量,这个注解主要作用在请求URL路径上的数据绑定。默认传递参数写在URL上,SpringMVC就可以获取到。
- @RequestPart
@RequestPart注解用于上传文件。