当前位置: 首页 > news >正文

SpringMVC 中的常用注解和用法

⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:JavaEE
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖

注解

  • 1. MVC定义
  • 2. 注解
    • 2.1 @RequestMapping
    • 2.2 @RequestParam
    • 2.3 RequestBody
    • 2.4 PathVariable
    • 2.5 Controller

1. MVC定义

MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分:
在这里插入图片描述

  • View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源。
  • Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分。
  • Controller(控制器) 可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型。

2. 注解

2.1 @RequestMapping

@RequestMapping的作用是建立请求URL和处理方法之间的对应关系
@RequestMapping可以作用在方法和类上

作用在类上:第一级的访问目录
作用在方法上:第二级的访问目录

@RequestMapping的属性

path-指定请求路径的URL
value属性和path属性是一样的
mthod 指定该方法的请求方式
params 指定限制请求参数的条件
headers 发送的请求中必须包含的请求头

示例:

 @RequestMapping("/user")
 @RestController
 public class UserController {
	@RequestMapping("/hello")
	public String hello(){
		return "hello,Spring MVC";
	}
}

访问地址:http://127.0.0.1:8080/user/hello

@RequestMapping 的URL 路径最前⾯加不加 / (斜杠)都可以,Spring程序启动时,会进⾏判断,如果前⾯没有加 / ,Spring会拼接上⼀个 / 。

2.2 @RequestParam

用于将指定的请求参数赋值给方法中的形参。

三个属性:
value:请求参数名(必须配置)
required:是否必需,默认为 true,即请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)

示例:URL中的参数名必须为value
在这里插入图片描述
错误示例:

在这里插入图片描述

2.3 RequestBody

主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

示例:

@RestController
public class UserController {
    @PostMapping("/users")
    public ResponseEntity<User> createUser(@RequestBody User user) {
        // 在这里处理 user 对象
        // ...
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}

上述示例中,@RequestBody 注解标识的 User 参数会自动从请求体中解析,然后映射为 User 对象。

2.4 PathVariable

这个注解主要作⽤在请求URL路径上的数据绑定。

默认传递参数写在URL上,SpringMVC就可以获取到。
示例:

@RequestMapping("/user/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String use
	return "解析参数id:"+id+",name:"+userName;
}

使用浏览器发起请求:http://127.0.0.1:8080/getmessage/user/1/zhangsan
在输入URL时,需要传递需要的参数,这样后端才能正确获取到URL中的参数。
在这里插入图片描述

如果⽅法参数名称和需要绑定的URL中的变量名称⼀致时,可以简写,不⽤给@PathVariable的属性赋值,如上述例⼦中的id变量。
如果⽅法参数名称和需要绑定的URL中的变量名称不⼀致时。需要@PathVariable的属性value赋值,如上述例⼦中的userName变量。

2.5 Controller

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。

  • 分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。
  • @Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

相关文章:

  • 一文掌握:电力管理系统该的功能和界面设计
  • 基于OpenCV的图形分析辨认05(补充)
  • 在PyCharm中使用Jupyter Notebooks实现高效开发
  • Android 混淆是啥玩意儿?
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:CheckboxGroup)
  • Nginx配置php起WoWSimpleRegistration服务
  • Django Web架构:全面掌握Django模型字段(上)
  • 文件另存为保存:无法在未启用宏的工作簿中保存以下功能,
  • 一键打通红圈泛微,让协同办公更轻松!
  • 滞销番茄变废为宝,成功打造市场份额第一番茄品牌|日本极致产品力
  • C# 的一些好用的语法糖介绍
  • SLAM基础知识:前端和后端
  • STM32各外设初始化步骤
  • 1、MQ_介绍、优缺点、类型等
  • 前端每日一练:三栏布局,包括 Flex 布局、浮动布局、Grid 布局以及绝对定位布局。
  • 弹性地基梁matlab有限元编程 | 双排桩支护结构 | Matlab源码 | 理论文本
  • 本地项目推送到腾讯云轻量应用服务器教程(并实现本地推送远程自动更新)
  • 设计模式:观察者模式 ⑧
  • 夏目友人帐 第六季特别篇 2017.09.27
  • Android SDK2 (实操三个小目标)
  • 上汽享道出行完成13亿元C轮融资,已启动港股IPO计划
  • 中国词学研究会原会长、华东师大教授马兴荣逝世,享年101岁
  • 马上评丨维护学术诚信别陷入“唯AI检测”误区
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 上海楼市“银四”兑现:新房市场高端改善领跑,二手房量价企稳回升
  • 最新研究:基因编辑治疗晚期胃肠道癌显成效