SpringMVC相关注解

本文介绍了SpringMVC中的关键注解,包括@Controller、@RestController、@RequestMapping及其与@GetMapping的区别。@RestController用于创建RESTful API并返回JSON数据。@PathVariable和@RequestParam的区别在于前者从URI读取值,后者获取请求参数。@RequestBody注解则用于处理非默认编码格式的请求内容,如JSON或XML。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GitHub:https://github.com/JDawnF/learning_note

@Controller

@Controller 注解,它将一个类标记为 Spring Web MVC 控制器 Controller 。

@RestController 和 @Controller 的区别

@RestController 注解,在 @Controller 基础上,增加了 @ResponseBody 注解,更加适合目前前后端分离的架构下,提供 Restful API ,返回例如 JSON 数据格式。当然,返回什么样的数据格式,根据客户端的 "ACCEPT" 请求头来决定。

@RequestMapping

@RequestMapping 注解,用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/方法。此注释可应用于两个级别:

  • 类级别:映射请求的 URL。

  • 方法级别:映射 URL 以及 HTTP 请求方法。

@RequestMapping 和 @GetMapping 区别

  • @RequestMapping 可注解在类和方法上;@GetMapping 仅可注册在方法上。

  • @RequestMapping 可进行 GET、POST、PUT、DELETE 等请求方法;@GetMapping@RequestMapping 的 GET 请求方法的特例,目的是为了提高清晰度。

返回 JSON 格式使用的注解:

可以使用 @ResponseBody 注解,或者使用包含 @ResponseBody 注解的 @RestController 注解。

当然,还是需要配合相应的支持 JSON 格式化的 HttpMessageConverter 实现类。例如,Spring MVC 默认使用 MappingJackson2HttpMessageConverter 。

@PathVariable 注解与@RequestParam的区别

@PathVariable 注解,是 Spring MVC 中有用的注解之一,它允许您从URI 读取值,比如查询参数。它在使用 Spring 创建 RESTful Web 服务时特别有用,因为在 REST 中,资源标识符是 URI 的一部分。

@RequestParam注解和@PathVariable注解的区别,从字面上可以看出前者是获取请求里边携带的参数;后者是获取请求路径里边的变量参数。

(例如:127.0.0.1/user/{userId}?userName=zhangshan,userId是路径上的变量,userName才是请求参数信息)

1.@RequestParam注解

@RequestParam有三个参数:

value:参数名;

required:是否必需,默认为true,表示请求参数中必须包含该参数,如果不包含抛出异常。

defaultValue:默认参数值,如果设置了该值自动将required设置为false,如果参数中没有包含该参数则使用默认值。

示例:@RequestParam(value = "userId", required = false, defaultValue = "1")

2.@PathVariable注解

当使用@RequestMapping URI占位符映射时,Url中可以通过一个或多个{xxxx}占位符映射,通过@PathVariable可以绑定占位符参数到方法参数中。

例如:@PathVariable("userId") Long userId,@PathVariable("userName") String userName

(注:Long类型可以根据需求自己改变String或int,Spring会自动做转换)

@RequestMapping(“/user/{userId}/{userName}/query")

参照 《Spring MVC 的 @RequestParam 注解和 @PathVariable 注解的区别》

@RequestBody

@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。

前端通过post传数据过来,要用RequestBody注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值