Spring Boot Validation: 使用 @Validated 和 @Valid 校验 @RequestBody 和 @PathVariable 参数
在使用 spring-boot-starter-validation 进行参数校验时,需要在 Controller 类中使用 @Validated 注解来启用校验功能。同时,在需要校验的参数前加上 @Valid 注解即可。
例如,在使用 @RequestBody 接收 POST 请求的参数时,可以这样写:
@RestController
@RequestMapping("/users")
@Validated
public class UserController {
@PostMapping
public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
// 处理创建用户的逻辑
return ResponseEntity.ok(user);
}
}
上面的代码中,@Validated 注解用于启用校验功能,@Valid 注解用于标识需要校验的参数,即 User 对象。
如果是使用 @PathVariable 接收 URL 中的参数,可以这样写:
@RestController
@RequestMapping("/users")
@Validated
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@Valid @PathVariable('id') Long id) {
// 处理获取用户的逻辑
return ResponseEntity.ok(user);
}
}
上面的代码中,@PathVariable('id') 注解用于标识需要校验的参数,即 id,同时也可以指定参数的名称,方便后续的使用。
原文地址: https://www.cveoy.top/t/topic/mTsA 著作权归作者所有。请勿转载和采集!