【SpringMVC】常用注解(续)

SpringMVC常用注解一文中,已经对一些基本注解(有@Controller、@RequestMapping、@ResponseBody、@RequestParam)进行了简单介绍;在此篇文章中,将继续对剩余的几个常用注解进行简单介绍,有@RequestBody、@PathVariable以及@RequestPart。

@RequestBody

@RequestBody注解接收的参数是来自于HTTP请求中的body中,通常用来接收的是json或者xml类型的数据,和@ResponseBody类似(@ResponseBody是用来传递josn或xml等类型的数据)。

使用位置:如下图,对应方法参数前。

常见属性

在@RequyestBody中,只有一个属性就是required,当某个参数加上注解之后,默认就是此参数必须存在。 

@RequestBody和@RequestParam的区别:
1. @RequestBody是请求体中的内容,意味着GET请求是不能使用此注解的,只有POST或者其他包含请求体的请求类型才可以使用;而@RequetParam是接收key value的参数,例如username=张三&password=123,GET和POST请求都可以使用,一般是查询字符串、form-data或者x-www-form-urlencoded等类型的参数。

2. @RequestBody在一个方法中,只能出现一次;而@RequestParam在一个方法中可以出现多次。

 @PathVariable

@PathVariable翻译过来的意思是路径变量,是用来映射URL绑定的占位符。

当路径中存在{xxx}时,使用@PathVariable注解就可以将xxx映射为key,前端传过来的值就是value;例如下图:
 

URL:127.0.0.1:8080/user/赵四/123
当路径中是上述语句时,表示用户名为赵四,密码是123。  

在使用@PathVariable注解时,为了更好的表示URL的语义,也可以将路由写成如下: 

 

 URL:127.0.0.1:8080/user/username/赵四/password/123
当路径中是上述语句时,表示用户名为赵四,密码是123。  

常见属性

 在@PathVariable注解的源代码中可以看出,此注解一共有三种属性

        1. name / value

         name和value是两种属性,但是表示的确是一种含义,name是value的别名,value是name的别名,看个人习惯更喜欢使用哪一种,表示的都是对{}中参数的映射。

        2. required

        required参数基本是好多SpringMVC中注解都有的一个参数,表示的都是此参数是否必须存在;但是在此注解中唯一不同的就是如果可以不存在还得有特殊的处理方法,否则会404。

@PathVariable是在请求路由中进行操作的一个注解,我平常的习惯是不太经常用此注解,相比之下我更喜欢使用@RequestParam或者@RequestBody。

@RequestPart 

@RequestPart注解是用来表示进行上传图片使用。

在@RequestPart注解中,同样也是存在name、value以及required属性。

如上图所示,就是一个简单上传图片的案例;但是在正式开发中,并不会这样进行使用,因为上述图片路径是确定的,那就表示所有的图片都使用的是同一路径,这就使得后续的图片会将前一张图片覆盖,永远都只会存储一张图片;因此,在正式开发中,都是加上uuid来表示。

@RequestPart注解是用来进行图片上传的一个注解,和其他注解并没有太多类似或者相同的地方,因此可以单独进行理解。

在本篇文章中,是对SpingMVC注解的后续介绍,两篇文章大概七个注解,基本上就是SpringMVC中常用的几个注解,在Spring的初始阶段,可以先对这几个注解熟悉之后,再去对其他的一些注解进行深入了解,感谢各位的观看。

相关推荐

  1. SpringMVC注解

    2024-01-16 22:46:06       25 阅读
  2. SpringMVC注解

    2024-01-16 22:46:06       37 阅读
  3. springmvc注解

    2024-01-16 22:46:06       12 阅读
  4. Spring与SpringMVC注解

    2024-01-16 22:46:06       16 阅读
  5. 总结 SpringMVC 中的注解

    2024-01-16 22:46:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-16 22:46:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-16 22:46:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-16 22:46:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-16 22:46:06       20 阅读

热门阅读

  1. 单元测试@Parameters

    2024-01-16 22:46:06       35 阅读
  2. Spring MVC(三) 国际化

    2024-01-16 22:46:06       24 阅读
  3. 力扣-三数之和

    2024-01-16 22:46:06       37 阅读
  4. ACM板子

    ACM板子

    2024-01-16 22:46:06      35 阅读
  5. rust嵌入式开发补充

    2024-01-16 22:46:06       35 阅读
  6. mac安装mysql和docker

    2024-01-16 22:46:06       33 阅读
  7. Hologres + Flink 流式湖仓建设

    2024-01-16 22:46:06       37 阅读
  8. 生成对抗网络GAN简介- 图像处理应用

    2024-01-16 22:46:06       33 阅读
  9. 智能寻迹避障清障机器人设计(第七章)

    2024-01-16 22:46:06       26 阅读