[英]Spring Boot application without the hibernate-validator dependency
[英]Reuse domain model in Hibernate-Validator with Spring Boot
我正在使用Hibernate Validator(包含在Spring-boot-starter-web中)学习SpringBoot,并且我想知道如何在不同的情况下重用同一域
User.java
public class User {
@NotBlank(message = "username could not be empty ")
private String name;
@Max(120)
private int age;
@Range(min = 8, max = 20)
private String password;
@Email
private String email;
}
情况是:
我想使用此域模型来执行登录和注册,也可能要执行其他操作,但是遇到一些麻烦。
是否可以仅使用同一域来做到这一点? 以及如何做?
谢谢。
您要查看的是验证组 。 这样,您可以为同一个bean构建约束集,然后在不同情况下使用不同的组进行验证。 在您的特定情况下,您可能会遇到以下情况:
公共类用户{
@NotBlank(message = "username could not be empty ", groups = {Register.class})
private String name;
@Range(min = 8, max = 20, groups = {Register.class, Login.class})
private String password;
@Email(groups = {Register.class, Login.class})
private String email;
}
然后通过将“ Register
或“ Login
作为一个组传递来进行验证,您将仅对具有相应组的约束进行检查。
春天如何通过这些团体? 您应该看看@Validated
注解 。 它具有一个属性groups
,可用于指定要用于验证的组。 它看起来像:
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@Validated( Login.class ) User user) {
....
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.