Spring MVC 之简介及常见注解

一、什么是 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注解用于上传文件。

相关推荐
摇滚侠1 小时前
Spring Boot 3零基础教程,Spring Intializer,笔记05
spring boot·笔记·spring
Jabes.yang1 小时前
Java求职面试实战:从Spring Boot到微服务架构的技术探讨
java·数据库·spring boot·微服务·面试·消息队列·互联网大厂
聪明的笨猪猪1 小时前
Java Redis “高可用 — 主从复制”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
兮动人2 小时前
Spring Bean耗时分析工具
java·后端·spring·bean耗时分析工具
MESSIR222 小时前
Spring IOC(控制反转)中常用注解
java·spring
摇滚侠2 小时前
Spring Boot 3零基础教程,Demo小结,笔记04
java·spring boot·笔记
笨手笨脚の3 小时前
设计模式-迭代器模式
java·设计模式·迭代器模式·行为型设计模式
spencer_tseng3 小时前
Eclipse 4.7 ADT (Android Development Tools For Eclipse)
android·java·eclipse
聪明的笨猪猪4 小时前
Java Spring “AOP” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
seven97_top5 小时前
Springboot 常见面试题汇总
java·spring boot·后端