抖音|学习几个Java中非常重要的注解( 二 )


①通配符:?
代表可以使用任意一个字符 。
例子中路径配置的是“a?” , 那么ab、ac、a加任意一个字符都可以访问 。
②通配符:*
代表了0个或者多个字符 。
例子中路径配置的是“a*” , 那么abcdd、afa都可以访问 , 甚至单独的一个a也可以 。
其中当*单独使用的时候只能配置一个或者多个的字符 , 0个就不行了 。
③通配符:**
代表了0个或者多个路径 。
例子中路径配置的是“**” , 那么随便多个路径都可以 , 没有路径也行 。
其中当**和其它字符一起使用时就不能多个路径了 , 代表0或多个字符 , 和*作用一样 。
2占位符的映射(restful风格)
restful风格厉害的地方在于:路径中输入的字符可以作为参数被取出来 。
使用注解@PathVariable
该注解可以获取路径中的字符作为参数
不过值得注意的是:
@PathVariable(“key”)中的key必须和对应占位符中的参数名保持一致 。
如果传递的参数类型和接受参数的形参类型不一致 , 则会自动转换 。 比如上图年龄传了“18”字符串 , 方法形参使用Integer来接受参数 。
3限定请求方法的映射
这种方式就是可以限定方法的请求类型 , 比如我们只接受GET请求:
@RequestMapping(value=https://mparticle.uc.cn/api/””method=””)
使用RequestMethod.GET设定请求方式为GET请求 , 如果是POST请求就不行了 。
我们点击RequestMethod的源码可以发现 , 其一共有8种请求类型 , 都是以枚举的形式存在 , 自己指定需要限制的请求方式即可 。
4限定请求参数的映射
@RequestMapping(value=https://mparticle.uc.cn/api/””params=””)
和限定请求方法很像 , 就是将method换成了params , 名称都是见名知义的 。
①params=”id”
请求参数中必须有id , 如果没有id会报错 。
与之相反的是:如果params=”!id”表示请求参数中不能包含id , 如果有id会报错 。
②params=”id=1”
请求参数中id必须为1 , 如果不为1会报错 。
与之相反的是:如果params=”id!=1”表示请求参数中id必须不为1 , 如果等于1会报错 。
③params={“name” ”age”
请求参数中必须有name , age参数 , 当然有多余的其它参数也行 , 但这两个必须要有 。
5混合注解
@GetMapping:限定请求方式必须要为GET请求才行 , 就相当于:@RequestMapping用method=RequestMethod.GET 。
类似的注解还有@PostMapping、@PutMapping、@DeleteMapping 。
值得注意的是:
上述例子中 , ①和②分开使用都可以达到效果 , 如果放在一起会报错 。
三、接收数据及数据绑定1接收servlet的内置对象
常用的servlet对象一共有三个:request , response , session 。
这些对象的接收非常简单 , 只需要在方法形参中有该对象就能接收 , 不需要任何配置 。
2springMVC的Model对象
我们前面使用ModelAndView , 每次都要new对象 , 既然学了spring , 肯定能优化 。
springMVC的Model对象就是用来代替ModelAndView的:

  • addAtrribute()就相当于addObject()
  • 返回字符串就相当于设定ViewName的值 。
注意:①和②不能放在一起联合使用 , 我这边只是做一个对比说明它们是一回事 。
3接收普通的请求参数
也就是@RequestParam这个注解的使用 , 这个注解非常重要 , 使用起来也方便 。