在使用 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,同时也可以指定参数的名称,方便后续的使用。

Spring Boot Validation: 使用 @Validated 和 @Valid 校验 @RequestBody 和 @PathVariable 参数

原文地址: https://www.cveoy.top/t/topic/mTsA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录