在下面的博客文章。
https://www.baeldung.com/spring-boot-bean-validation
作者提到了Spring如何使用@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找到一个带有@Valid注解的参数时,它会自动引导默认的JSR 380实现-- Hibernate Validator --并验证该参数。
在没有@Valid的情况下,@RestController确实可以正常工作吗?
那么需要使用@Validated显式注释的立体声类型是什么?
发布于 2021-02-05 02:43:12
是的,@Valid不用@Validated就能在@RestController上工作。
在Spring中,我们使用JSR-303的@Valid注释进行方法级验证。此外,我们还使用它来标记成员属性以进行验证。但是,该注释不支持组验证。组有助于限制在验证期间应用的约束。一个特殊的用例是UI向导。在这里,在第一步,我们可能有一个特定的子组的字段。在接下来的步骤中,可能有另一个属于同一个bean的组。因此,我们需要在每个步骤中对这些有限的字段应用约束,但是@Valid不支持这一点。在本例中,对于组级,我们必须使用Spring的@Valid,这是JSR-303的@Valid的一个变体。这是在方法级别使用的。对于标记成员属性,我们继续使用@Valid注释。
您可以在这个链接中读到更多关于这一点的内容。
https://stackoverflow.com/questions/66056719
复制相似问题