Spring MVC注释

介绍:

从Spring 2.5开始,我们可以使用注释来标记我们的Spring组件。

一种方法是在我们的appConfig.xml中使用<component-scan>标记:

<context:component-scan base-package="com.programmergirl" />

然后,Spring容器将递归扫描给定包及其子包中的所有组件。

在本快速教程中, 我们将讨论最常用的Spring MVC注释。

定义

根据其类型,我们可以为控制器使用两种不同的注释:

我们可以简单地使用此注释来标记我们的任何Spring MVC控制器类:

@Controller
public class MyController {...
}

该注释对于注释我们的RESTful控制器很有用:

@RestController
public class MyRestController {...
}

该注释本身使用@Controller@ResponseBody注释进行注释。

在另一篇文章中,我们已经详细介绍了@Controller@RestController之间的区别 。

请求处理注释:

现在让我们看一下可用于处理HTTP请求的注释:

我们使用此批注在Spring MVC Controller中映射Web请求方法 。 我们还可以使用其可用属性对其进行自定义:

  • method:表示一种HTTP请求方法-PUT,GET,POST,DELETE,PATCH
  • 值:映射的URL
  • params根据HTTP参数过滤请求
  • headers根据HTTP标头过滤请求。
  • 产生:定义HTTP响应的媒体类型
  • 消耗:指定HTTP请求的媒体类型
@Controller
@RequestMapping("/hello-world")
class MyController {@RequestMapping(value = "/message", method = RequestMethod.GET)String message() {return "Hello World!";}
}

我们还可以在类级别使用此注释来设置一些公共属性

此外,从Spring 4.3开始,@ RequestMapping为不同的HTTP方法提供了多种变体。 这些包括@ GetMapping,@ PutMapping,@ PostMapping,@ DeleteMapping@PatchMatching。

有了这个注释,我们可以将HTTP请求参数绑定到method参数

@GetMapping("/message")
String message(@RequestParam("userName") String userName) {return "Hello " + userName;
}

(可选)我们还可以提供默认值。 对于request参数的缺失值,使用默认值:

@GetMapping("/message")
String message(@RequestParam(defaultValue = "Sam") String userName) {return "Hello " + userName;
}

我们可以将method参数绑定到path或URI中的变量之一。 我们将使用@PathVariable

@GetMapping("/message/{userName}")
String message(@PathVariable String userName) {...
}

另外,我们可以通过将required设置为false来选择将路径变量标记为可选

@GetMapping("/message/{userName}")
String message(@PathVariable(required = false) String userName) {...
}

可以将HTTP请求正文作为参数传递给控制器​​中的处理程序方法。 我们经常使用它来读取带有PUTPOST等 HTTP方法的请求的请求主体。

@PostMapping("/message")
String message(@RequestBody String userName) {...
}

内容将根据其类型使用HttpMessageConverter自动反序列化。

响应处理注释:

现在,让我们探索一些可用于处理HTTP响应的注释:

@RequestBody相似,我们有一个@ResponseBody批注。 当我们使用此注释对方法进行注释时,Spring将此方法的结果视为响应本身:

@GetMapping("/message")
@ResponseBody
String message() {return "Hello World!!";
}

我们还可以使用此注释来注释@Controller类。 如果是这样,我们控制器中的所有方法都将使用它。

这样,我们可以将所需的HTTP响应状态映射到控制器中的方法:

@ExceptionHandler(UserAccessDeniedException.class)
@ResponseStatus(HttpStatus.FORBIDDEN)
void onUserAccessDeniedException(UserAccessDeniedException exception) {...
}

我们可以了解更多有关如何使用@ResponseStatus设置状态代码和原因的信息。

我们可以编写自定义的异常处理程序方法。 在方法执行期间引发其类型异常时,将调用以下方法:

@ExceptionHandler(UserAccessDeniedException.class)
void onUserAccessDeniedException(UserAccessDeniedException exception) {// ...
}

结论:

在本教程中,我们浏览了大多数常用的Spring MVC注释。

翻译自: https://www.javacodegeeks.com/2019/05/spring-mvc-annotations.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电源模块是电源吗?

我们平时用的充电器或电池等供电装置到底是不是电源呢&#xff1f;首先让我们来看一下电源的定义&#xff1a;电源就是把其他形式的能量转化成电能的装置。即&#xff1a;电源是提供电能的装置。因为它可以将其它形式的能转换成电能&#xff0c;所以我们把这种提供电能的装置叫…

[渝粤教育] 广东-国家-开放大学 21秋期末考试管理会计10171k2

1、下列项目中&#xff0c;变动成本法下计入产品成本的是( )。 &#xff08;2 分&#xff09; A&#xff0e;变动性制造费用 B&#xff0e;变动性管理费用 C&#xff0e;固定性管理费用 D&#xff0e;固定性制造费用 2、将成本中心划分为标准成本中心和费用中心的分类依据是&am…

浦发银行计算机笔试题库,2018浦发银行校园招聘笔试试题库

原标题&#xff1a;2018浦发银行校园招聘笔试试题库银行招聘网(http://www.jinrongren.net/)提醒&#xff1a;2018浦发银行校园招聘公告已经发布啦&#xff0c;共招聘2152人&#xff0c;公告中明确表明柜员岗专科以上就可以报考&#xff0c;专业不限&#xff0c;也并未对英语四…

浅析二层工业交换机的特点

二层交换技术的发展比较成熟&#xff0c;二层工业交换机属数据链路层设备&#xff0c;可以识别数据包中的MAC地址信息&#xff0c;根据MAC地址进行转发&#xff0c;并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。那么&#xff0c;二层工业交换机的特点有哪些呢&am…

[渝粤教育] 广东-国家-开放大学 21秋期末考试财政学10573k1

1、&#xff08; &#xff09;研究人们如何借助于经济制度&#xff0c;最大限度地利用稀缺的资源来最好地达到配置效率与分配公平两大经济目标。&#xff08;2 分&#xff09; A&#xff0e;财政学 B&#xff0e;政治经济学 C&#xff0e;现代经济学 D&#xff0e;金融学 2、财…

单片机、ARM、DSP与CPU之间的关系大揭秘

你知道单片机、ARM、DSP都是CPU吗&#xff0c;它们之间又有什么不同&#xff0c;小编进行了整理和编辑。 CPU&#xff1a;中央处理器 CPU 包括运算逻辑部件、寄存器部件和控制部件等&#xff0c;其本质就是一个集成电路&#xff0c;实现的功能就是从一个地方读出一个指令&…

物联网技术系列之3分钟了解无线MESH网络

今天来聊聊无线MESH网络的&#xff0c;开始之前&#xff0c;先说一句&#xff1a;“无线MESH网络是个好东西&#xff01;” 要说无线MESH网络&#xff0c;首先从我们都熟悉的无线网络说起。 无线网络相信在座的各位一定一点儿也不陌生&#xff0c;现在它已经融入到我们生活的…

【渝粤教育】 广东开放大学 10548_金融学k1_21秋考试

1、世界上最早的保险市场是&#xff08; &#xff09;年伦敦开设的专门提供保险交易的皇家交易所。&#xff08;2 分&#xff09; A&#xff0e;1668年 B&#xff0e;1568年 C&#xff0e;1558年 D&#xff0e;1548年 2、商业银行的超额准备金率越高&#xff0c;则货币乘数&…

工业交换机故障分析的原则

由于工业交换机故障现象多种多样&#xff0c;没有固定的排除步骤&#xff0c;而有的故障往往具有明确的方向性&#xff0c;一眼就能识别得出。所以只能根据具体情况具体分析了&#xff0c;为了使的排障工作有章可循&#xff0c;我们可以在分析工业交换机的故障时&#xff0c;按…

深圳大学计算机课程表2018,深圳大学国际交流学院2017—2018学年第1学期本科生课程表...

深圳大学国际交流学院2017-2018学年第1学期本科生课程表(一)主选班级&#xff1a;2017级汉语言文学1班上课时间&#xff1a;2017年9月5日至2018年1月5日课程及地点 上课时间周一周二周三周四周五上午08:30~10:00(1-2节)初级汉语口语(1) 周永强B205初级汉语听力(1) 李艳 B205初级…

参数化测试 junit_参数化的JUnit测试

参数化测试 junit有时&#xff0c;您会遇到一个问题&#xff0c;就是尖叫使用“参数化”测试&#xff0c;而不是多次复制/粘贴相同的方法。 测试方法基本上是相同的&#xff0c;唯一改变的是传入的数据。在这种情况下&#xff0c;请考虑创建一个利用JUnit中的“ Parameterized …

NB-IoT在智慧烟感解决方案中的应用

火灾无疑是人员安全和公共财产的最大威胁之一&#xff0c;近年来独立烟感越来越多&#xff0c;但由于独立烟感产品功能单一&#xff0c;只能发出声光报警&#xff0c;存在一定局限性。随着全国NB-IOT技术的成熟&#xff0c;新的智慧烟感解决方案呼之欲出。 传统独立烟感的缺点 …

【渝粤教育】 广东开放大学21秋期末考试基础会计10258k2

单项选择题 1、清查范围广&#xff0c;内容多&#xff0c;花费的时间长是&#xff08;&#xff09;的特点。 &#xff08;2 分&#xff09; A&#xff0e;局部清查 B&#xff0e;全面清查 C&#xff0e;不定期清查 D&#xff0e;定期清查 2、在实际工作中&#xff0c;可能会因…

【Mybatis】

mybatis 1.配置文件实现增删改查介绍1.1第一步 环境准备1.2 第二步 查询所有数据1.2.1 步骤1&#xff1a; 编写接口方法1.2.2步骤二&#xff1a; 编写SQL语句1.2.3步骤三&#xff1a; 编写测试方法1.2.4 起别名解决上述问题1.2.5 使用resultMap解决上述问题 1.3 参数占位符1.4 …

盘点物联网的4个认知误区

误区一 把传感网或RFID网等同于物联网。事实上传感技术也好、RFID技术也好&#xff0c;都仅仅是信息采集技术之一。除传感技术和RFID技术外&#xff0c;GPS、视频识别、红外、激光、扫描等所有能够实现自动识别与物物通信的技术都可以成为物联网的信息采集技术。传感网或者RFI…

工业交换机安全性能的必要性

22%的客户认为认为在选购工业以太网交换机等产品和解决方案时&#xff0c;最关心的就是安全性&#xff0c;其次是稳定性(21%)、速度(14%)和兼容性(12%)。接下来&#xff0c;飞畅科技的小编就来为大家详细介绍下工业交换机安全性能的必要性&#xff0c;一起来看看吧&#xff01;…

【渝粤教育】国家开放大学2018年春季 0014-21T秘书学(一) 参考试题

试卷编号&#xff1a;0014 座位号 2017-2018学年度第二学期期末考试 秘书学&#xff08;一&#xff09; 试 题 2018年7月 1&#xff0e;秘书活动2. 行业秘书3. 秘书办公手段4. 国家秘密1&#xff0e;商务谈判的基本要素是&#xff08; &#xff09; A&#xff0e;商务谈判的主…

京津冀计算机学科大学排名,2021年京津冀地区高校排名公布,北师排第三,央财不敌河大?...

在我国的京津冀地区一直以来经济相对繁荣&#xff0c;而且城市密集&#xff0c;不管是经济发展还是高等教育都有非常雄厚的实力。据数据统计&#xff0c;在去年京津冀地区经济总量8.60,000亿&#xff0c;而且人口达到1.1亿&#xff0c;并且该地区高等院校相对集中&#xff0c;这…

【渝粤教育】国家开放大学2018年春季 0275-22T内科护理学 参考试题

编号&#xff1a;0275 座位号 2017-2018学年度第2学期期末考试 内科护理学试题 2018年6月 一、名词解释 &#xff08;2小题&#xff0c;每题10分&#xff0c;共20分&#xff09; 1.肺性脑病&#xff1a; 2.休克&#xff1a; 内科护理学试题第1页共4页 二、填空 &#xff08…

物联网设备的互操作性问题探讨

通常&#xff0c;物联网系统或物联网传感器通信网络使用诸如Zigbee、蓝牙、Z-wave、WiFi等流行标准技术来设计&#xff0c;以使设备间可以相互通信、协作。目前物联网的挑战之一是在现有网络中添加新的设备&#xff0c;因为现有网络与新设备具有不同的通信协议。 因此&#xff…