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

【SpringMVC】常用注解

什么是MVC?

MVC是一种程序分层开发模式,分别是Model(模型),View(视图)以及Controller(控制器)。这样做可以将程序的用户界面和业务逻辑分离,使得代码具有良好的可扩展性、可复用性、可维护性和灵活性。

@Controller

显而易见,@Controller注解对应的是MVC模式中的Controller对象。在Bean注解存储对象一文中也有过介绍,@Controller表示的是控制器,归属于业务逻辑层,对前端发来的请求进行判断,观察其数据是否合理,也就是控制用户行为,判断参数合理性。

@RequestMapping

@RequestMapping,翻译过来的意思就是请求映射,顾名思义就是对前端发来的路由地址进行映射,使其对应到某个类或者方法上。

使用位置

1. Java类

如上图,若对应到某个类上,那么这个类其中的所有方法进行请求映射时都需要先把父路径加上。

2. Java方法

如上图,当用户想要进行登录的时候,前端就会向后端发一个路由,而路由正是根据这个@RequestMapping注解其中的请求映射而来。

常见属性

1. value

value指的就是请求地址,但是使用的时候一般其他属性不多见,因此也就将其直接省略。

@RequestMapping(value = "/login")

2. method

如果各位程序猿有了解过HTTP协议的话,这其实就是HTTP协议首行中的方法。本来设计协议的大佬是为了更好的描述一次请求是想要干啥,但是在实际开发中,好多都是一刀切,直接使用一个POST请求解决一切请求。

  • GET:获取资源,也就是CURD中的查询操作,将数据库中的一些资源给返回前端,然后前端调取显示到页面上;例如博客系统中可以使用GET请求来获取博客。
  • POST:添加资源/修改资源,较着重于添加资源,也就是CURD中的增加操作,给数据库中增加一些实例个体;例如写好一篇文章之后点击提交按钮就是发送POST请求将播客存储到数据库中。
  • DELETE:删除资源,也就是CURD中的删除操作,在数据库中删除一些信息;例如点击一篇博客的删除按钮就是发送DELETE请求将此篇博客删除。
  • PUT:修改资源,也就是CURD中的修改操作,将数据库中的一些信息进行修改;例如发现博客系统的一篇博客不太好,然后进行修改,再提交时就是使用PUT请求。
  • PATCH:新引入的一个方法,修改局部资源,还是修改操作,和PUT不太一样的是修改局部,其实我感觉还是比较鸡肋,毕竟有那么多还是POST一刀切,那为啥还要增加这种,不过从维护角度看还是非常不错,通过这些注解大概了解代码进行了啥操作。

上述最常用的就是GET和POST请求,在面试中也会问一些关于这两个操方法的不同点,需要切记的一点就是没有啥区别,毕竟都是人为规定的,那么肯定就是可以修改的。

@RequestMapping(value = "/login", method = RequestMethod.GET)@PostMapping(value = "/login")

综上所述,@RequestMapping注解就是进行路由映射,也就是前端在进行某些操作时会用到一些数据,此时前端就会发送路由,而后端根据发送的路由就可以映射到对应的类和方法上进行逻辑操作。

@Requestparam

@Requestparam,翻译过来就是请求参数。本质上写代码不使用这个注解也是没有问题的,但是为了代码的严谨性,建议叠加。

 

相关文章:

【SpringMVC】常用注解

什么是MVC? MVC是一种程序分层开发模式,分别是Model(模型),View(视图)以及Controller(控制器)。这样做可以将程序的用户界面和业务逻辑分离,使得代码具有良好…...

关于曲率、曲率半径和曲率圆,看这几篇文章就够啦

关于曲率、曲率半径和曲率圆的内容,是考研数学数学一和数学二大纲中明确要求掌握的内容,但这部分内容在很多教材教辅以及练习题中较少涉及。在本文中,荒原之梦考研数学网就为大家整理了曲率、曲率半径和曲率圆方程相关的概念、基础知识以及练…...

java面试题-Spring常见的异常类有哪些?

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 NullPointerException&…...

数据库选择题 (期末复习)

数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 数据库第十第十一章 恢复和并发简答题 2015期末 1、在数据库中,下列说…...

WeNet语音识别+Qwen-72B-Chat Bot+Sambert-Hifigan语音合成

WeNet语音识别Qwen-72B-Chat Bot👾Sambert-Hifigan语音合成 简介 利用 WeNet 进行语音识别,使用户能够通过语音输入与系统进行交互。接着,Qwen-72B-Chat Bot作为聊天机器人接收用户的语音输入或文本输入,提供响应并与用户进行对话…...

是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言 自打华为2019年发布鸿蒙操作系统以来,网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android,更激烈的讨论随之而来。 本文没有宏大的叙事,只有基于现实的考量。 通过本文,你将了解到: Har…...

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic 原因 golang 服务出现了 panic,根据 panic 打印出的堆栈找到了问题代码,看上去原因是:json 序列化时,遇到了无法序列化的内容 [panic]: json: unsupported …...

bootstrap5实现宠物商店网站 Cat-Master

一、需求分析 宠物商店网站是指专门为宠物商店或宠物用品商家而建立的在线平台。这种网站的功能通常旨在提供以下服务: 产品展示:宠物商店网站通常会展示宠物食品、玩具、床上用品、健康护理产品等各种宠物用品的图片和详细信息。这样,潜在的…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)创建并初始化TcpServer实例 以及 启动

对于一个TcpServer来说,它的灵魂是什么?就是需要提供一个事件循环EventLop(EventLoop),不停地去检测有没有客户端的连接到达,有没有客户端给服务器发送数据,描述的这些动作,反应堆模型能够胜任。当服务器和…...

边缘计算设备是什么意思。

问题描述:边缘计算设备是什么意思。 问题解答: 边缘计算(Edge Computing)是一种计算模型,其主要思想是在距离数据产生源头更近的地方进行数据处理和计算,而不是将所有数据传输到远程云服务器进行处理。边…...

使用ChatGPT midjourney 等AI智能工具,能为视觉营销做些什么?

使用ChatGPT、Midjourney等AI智能工具,可以极大地提升视觉营销的效率和创意水平。以下是这些工具在视觉营销中的一些具体应用: 内容创作与文案撰写(ChatGPT) 广告文案生成:根据产品特点和目标受众,生成吸…...

图像分割实战-系列教程4:unet医学细胞分割实战2(医学数据集、图像分割、语义分割、unet网络、代码逐行解读)

🍁🍁🍁图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 unet医学细胞分割实战1 unet医学细胞分割实战2 unet医学细胞分割实战3 unet医学细胞分割实战4 unet…...

防火墙未开端口导致zookeeper集群异常,kafka起不来

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 主机信息: IPhostname10.0.0.10host1010.0.0.12host1210.0.0.13host13 在这三台主机上部署…...

React-hook-form-mui(二):表单数据处理

前言 在上一篇文章中,我们介绍了react-hook-form-mui的基础用法。本文将着表单数据处理。 react-hook-form-mui提供了丰富的表单数据处理功能,可以通过watch属性来获取表单数据。 Demo 下面是一个使用watch属性的例子: import React from…...

java网络文件地址url的转换为MultipartFile文件流

废话不多说,直接上代码 一、异常捕捉类 public class BusinessException extends RuntimeException {public BusinessException(String msg){super(msg);} }二、转换类 package com.example.answer_system.utils;import org.springframework.mock.web.MockMultipa…...

JS实现/封装节流函数

封装节流函数 节流原理:在一定时间内,只能触发一次 let timer, flag; /*** 节流原理:在一定时间内,只能触发一次* * param {Function} func 要执行的回调函数 * param {Number} wait 延时的时间* param {Boolean} immediate 是否立…...

ENVI 各版本安装指南

ENVI下载链接 https://pan.baidu.com/s/1APpjHHSsrXMaCcJUQGmFBA?pwd0531 1.鼠标右击【ENVI 5.6(64bit)】压缩包(win11及以上系统需先点击“显示更多选项”)选择【解压到 ENVI 5.6(64bit)】。 2.打开解压后的文件夹&#xff0c…...

60天零基础干翻C++————初识C++

初识c 命名空间命名空间的定义命名空间的使用 输入输出流缺省参数引用引用定义常量的引用引用的使用场景做函数参数引用做返回值 命名空间 命名空间的定义 在c语言中会有下面问题 上述代码中,全局变量rand 可能会命名冲突,如下图 此时编译失败&…...

考研复试英语口语问答举例第二弹

考研复试英语口语问答举例第二弹 文章目录 考研复试英语口语问答举例第二弹Question :介绍你的读研兴趣与动机Answer11:(自动化控制方向)Answer12:(集成电路方向)Answer13:&#xff…...

MyBatis-Plus实现自定义SQL语句的分页查询

正常开发的时候,有时候要写一个多表查询,然后多表查询之后还需要分页,MyBatis-Plus的分页插件功能挺不错的,可以很简单实现自定义SQL的分页查询。 分页插件配置 import com.baomidou.mybatisplus.annotation.DbType; import com…...

vue3 里的 ts 类型工具函数

目录 前言一、PropType\<T>二、MaybeRef\<T>三、MaybeRefOrGetter\<T>四、ExtractPropTypes\<T>五、ExtractPublicPropTypes\<T>六、ComponentCustomProperties七、ComponentCustomOptions八、ComponentCustomProps九、CSSProperties 前言 相关 …...

【SpringCloud】之远程消费(进阶使用)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringCloud开发之远程消费》。&#x1f3af;&a…...

自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程

大家好,我是微学AI,今天给大家介绍一下自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程。在大模型ChatGPT发布之前,NLP领域是BERT,T5模型为主导,T5(Text-to-Text Transfer Transformer)是一种由Google Brain团队在2019年提出的自然…...

CISSP 第5章 保护资产的安全

1、资产识别和分类 1.1 敏感数据 1.1.1 定义 敏感数据是任何非公开或非机密的信息&#xff0c;包括机密的、专有的、受保护的或因其对组织的价值或按照现有的法律和法规而需要组织保护的任何其他类型的数据。 1.1.2 个人身份信息PII 个人身份信息&#xff08;PII&#xff09…...

docker安装-在linux下的安装步骤

#切换到root用户 su yum安装jcc相关 yum -y install gcc yum -y install gcc-c 安装yum-utils sudo yum install -y yum-utils 设置stable镜像仓库 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新yum软件包索…...

在Uniapp中使用Echarts创建可视化图表

在uniapp中可以引入echarts创建数据可视化图表。 1. 安装Echarts 使用npm安装echarts插件&#xff0c;命令如下&#xff1a; npm install echarts --save2. 引入Eharts 在需要使用Echarts的页面引入&#xff1a; import *as echarts from echarts3. 创建实例 创建画布元素…...

基于python的leetcode算法介绍之动态规划

文章目录 零 算法介绍一 例题介绍 使用最小花费爬楼梯问题分析 Leetcode例题与思路[118. 杨辉三角](https://leetcode.cn/problems/pascals-triangle/)解题思路题解 [53. 最大子数组和](https://leetcode.cn/problems/maximum-subarray/)解题思路题解 [96. 不同的二叉搜索树](h…...

通信原理期末复习——计算大题(一)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…...

【萤火虫系列教程】2/5-Adobe Firefly 文字​生成​图像

文字​生成​图像 登录账号后&#xff0c;在主页点击文字生成图像的【生成】按钮&#xff0c;进入到文字生成图像 查看图像 在文字生成图像页面&#xff0c;可以看到别人生成的图像。 点击某个图像&#xff0c;就可以进入图像详情&#xff0c;可以看到文字描述。 生成图像 我…...

JDK 11:崭新特性解析

JDK 11&#xff1a;崭新特性解析 JDK 11&#xff1a;崭新特性解析1. HTTP Client&#xff08;标准化&#xff09;示例代码 2. 局部变量类型推断的扩展示例代码 3. 新的字符串方法示例代码 4. 动态类文件常量示例代码 5. Epsilon 垃圾收集器使用方式 结语 JDK 11&#xff1a;崭新…...

舟山网站制作公司/百度搜索一下

包括企业管理软件、协作与通讯以及企业门户 http://www.chinajava.net/learn/applications/tryanddownload.html http://www.chinajava.net/learn/applications/index.html...

阿里万网怎么做网站/优化大师有必要安装吗

在GameViewController.swift中重载prefersStatusBarHidden方法&#xff0c;返回true override func prefersStatusBarHidden() -> Bool {return true } 转载于:https://www.cnblogs.com/sandal1980/p/3819074.html...

网站做的比较好的公司吗/seo好学吗入门怎么学

修改tomcat/conf目录里面server.xml文件 例如下面这样新增一个8090端口&#xff0c;设置下appBase目录&#xff0c;这样就可以用一个tomcat监听多个端口&#xff0c;每个端口都可以放应用了。我这样新增下面这个配置以后&#xff0c;tomcat就监听了2个端口&#xff08;8080&…...

永州网站建设优化/谷歌推广怎么做最有效

相关阅读&#xff1a;参加IE9开发大赛 赢取现金大奖微软最顶级平台技术会议PDC10全程视频播放Microsoft Web平台——优秀项目展示Windows Phone 7 MSDN开发中心微软Web平台优秀项目精选推荐&#xff1a;世界顶级论坛、社区程序&#xff1a;bbsmax论坛世界上最大的自承载博客工具…...

最好的微网站建设公司推荐/宁德网站建设制作

环境 win10python 3.6.6过程 创建虚拟环境 virtualenv biubiubiu_scrapy 进入虚拟环境 ./biubiubiu_scrapy/Scripts/activate 直接安装 scrapy pip install scrapy 报错 microsoft visual c 14.0 is required 解决方法 https://964279924.ctfile.com/... 下载 visualcppbuil…...

佛山市建设小学网站/网络营销优化培训

IIS最近有个别客户反映购买的在线人数(IIS连接数)和实际不符合&#xff0c;现在特说明如下首先了解什么是IIS连接数。IIS连接数指并发连接数&#xff0c;什么意思呢&#xff1f;要分几种情况&#xff1a;(以100M空间50人在线为例)A 用户单点下载你的文件&#xff0c;结束后正常…...