在以下博客条目中。
https://www.baeldung.com/spring-boot-bean-validation
作者提到了 Spring Boot 如何使用 @Valid
注解。
@RestController
public class UserController {
@PostMapping("/users")
ResponseEntity<String> addUser(@Valid @RequestBody User user) {
// persisting the user
return ResponseEntity.ok("User is valid");
}
// standard constructors / other methods
}
<块引用>
当 Spring Boot 找到一个用 @Valid 注释的参数时,它会自动引导默认的 JSR 380 实现——Hibernate Validator——并验证该参数。
在没有 @Valid
的情况下,@RestController
在 @Validated
上是否按预期工作?
那么什么样的立体类型需要用@Validated
显式标注?
答案 0 :(得分:1)
是的,@Valid
在 @Validated
中没有 @RestController
也能工作。
在 Spring 中,我们在方法级别使用 JSR-303 的 @Valid 注解 验证。此外,我们还使用它来标记成员属性 验证。但是,此注释不支持组验证。 组有助于限制验证期间应用的约束。一 特定用例是 UI 向导。在这里,在第一步中,我们可以 有特定的子字段组。在接下来的步骤中,可能有 是属于同一个 bean 的另一个组。因此我们需要申请 每个步骤中对这些有限字段的约束,但 @Valid 没有 支持这个。在这种情况下,对于组级别,我们必须使用 Spring 的 @Validated,它是此 JSR-303 的 @Valid 的变体。这是用 在方法层面。对于标记成员属性,我们继续 使用@Valid 注释。
您可以在此link中阅读更多相关信息。