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注解用于上传文件。

相关推荐
短剑重铸之日6 小时前
《ShardingSphere解读》07 读写分离:如何集成分库分表+数据库主从架构?
java·数据库·后端·架构·shardingsphere·分库分表
知我Deja_Vu6 小时前
【避坑指南】ConcurrentHashMap 并发计数优化实战
java·开发语言·python
daidaidaiyu7 小时前
Spring IOC 源码学习 事务相关的 BeanDefinition 解析过程 (XML)
java·spring
鬼蛟8 小时前
Spring————事务
android·java·spring
西门吹-禅9 小时前
【sap fiori cds up error】
java·服务器·sap cap cds
敲代码的嘎仔9 小时前
Java后端面试——SSM框架面试题
java·面试·职场和发展·mybatis·ssm·springboot·八股
NGC_66119 小时前
Spring与SpringBoot
spring
大傻^9 小时前
Spring AI Alibaba RAG实战:基于向量存储的检索增强生成
java·人工智能·spring
大傻^9 小时前
Spring AI Alibaba 快速入门:基于通义千问的AI应用开发环境搭建
java·人工智能·后端·spring·springai·springaialibaba
伯恩bourne9 小时前
Google Guava:Java 核心工具库的卓越之选
java·开发语言·guava