Bean Validation
Bean Validation 是一项 Java 规范,旨在提供一种统一的方式来对 JavaBean 内的数据进行验证。而 Hibernate Validator 是 Bean Validation 规范的一个实现(且是目前最好的一个实现),它由 Hibernate 社区开发和维护。
具体来说,Bean Validation 规范定义了一系列用于验证 JavaBean 内容的 API 和约束注解,这些注解可以用于类的属性或方法上,以指定关于这些属性或方法的数据校验规则。例如,你可以使用 @NotNull 注解来确保属性不为 null,使用 @Size 注解来指定字符串长度范围等等。
Hibernate Validator 实现了 Bean Validation 规范,它提供了对这些约束注解的解析和验证逻辑。除了实现规范中定义的基本功能外,Hibernate Validator 还提供了一些扩展功能,如自定义约束、国际化支持等。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${version}</version>
</dependency>
Caused by: javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'
...
Caused by: java.lang.ClassNotFoundException: javax.el.ELManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 9 more
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
<version>${jakarta.version}</version>
</dependency>
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
// 推荐使用这种形式创建
Validator validator = Validation.byProvider(HibernateValidator.class)
.configure()
.failFast(true) // 快速失败
.buildValidatorFactory()
.getValidator();
资源链接
https://hibernate.org/validator/
https://docs.jboss.org/hibernate/validator/