hibernate-validator校验工具类
时间: 2023-08-24 16:06:13 浏览: 50
Hibernate Validator是一种基于注解的校验框架,用于验证JavaBean中的数据。它提供了一种简单易用的方式来确保数据的完整性和一致性,在实际开发中被广泛应用。
下面是一个校验工具类的示例:
```java
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;
public class ValidatorUtils {
private static Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
/**
* 校验对象
*
* @param obj 待校验对象
* @param groups 待校验的组
* @throws Exception 校验不通过,则报Exception异常
*/
public static void validateEntity(Object obj, Class<?>... groups)
throws Exception {
Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj, groups);
if (!constraintViolations.isEmpty()) {
StringBuilder msg = new StringBuilder();
for (ConstraintViolation<Object> constraintViolation : constraintViolations) {
msg.append(constraintViolation.getMessage()).append("<br>");
}
throw new Exception(msg.toString());
}
}
}
```
使用示例:
```java
public class User {
@NotNull(message = "用户名不能为空")
private String username;
@NotNull(message = "密码不能为空")
private String password;
// getter and setter
}
public class Test {
public static void main(String[] args) {
User user = new User();
user.setUsername(null);
user.setPassword(null);
try {
ValidatorUtils.validateEntity(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
注意事项:
- 需要在JavaBean的属性上添加相应的注解;
- 需要在校验工具类中使用`Validation.buildDefaultValidatorFactory().getValidator()`方法获取`Validator`对象;
- 可以通过`groups`参数指定需要校验的组,如果不指定,则校验所有组的规则。