代码改变世界

Sping注解

2023-03-27 11:18  猎手家园  阅读(38)  评论(0编辑  收藏  举报

@Validated注解:可以用在类型,方法和方法参数上,但是不能用在成员属性上。
@Validation是一套帮助我们继续对传输的参数进行数据校验的注解,通过配置Validation可以很轻松的完成对数据的约束。

 

@PathVariable 映射 URL 绑定的占位符。通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过

@PathVariable(“xxx”) 绑定到操作方法的入参中。一般与@RequestMapping(method = RequestMethod.GET)一起使用

@RequestMapping("/getUserById/{name}")
public User getUser(@PathVariable("name") String name){
    return userService.selectUser(name);
}

 

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

/**
* 接收普通请求参数
* http://localhost:8080/test/a?name=zhangsan
* url参数中的name必须要和@RequestParam("name")一致
* @return
*/
@RequestMapping("a")
public void test1(@RequestParam("name")String name){
    sout(name);
    //结果输出的是zhangsan
}

 

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),所以只能发送POST请求。

GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。

在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

注1:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。

注2:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。