在下面的博客中。
https://www.baeldung.com/spring-boot-bean-validation
作者提到了springboot如何与 @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
?
1条答案
按热度按时间bvhaajcl1#
对
@Valid
如果没有@Validated
在@RestController
.在spring中,我们使用jsr-303的@valid注解进行方法级验证。此外,我们还使用它来标记成员属性以进行验证。但是,此注解不支持组验证。组有助于限制验证期间应用的约束。一个特殊的用例是ui向导。在这里,在第一步中,我们可能有一个特定的字段子组。在随后的步骤中,可能存在属于同一bean的另一个组。因此,我们需要在每个步骤中对这些有限的字段应用约束,但是@valid不支持这一点。在本例中,对于组级别,我们必须使用spring的@validated,这是jsr-303的@valid的一个变体。这是在方法级别使用的。对于标记成员属性,我们继续使用@valid注解。
你可以在这个链接中了解更多。