Maven:
<dependency>
<groupId>org.apache.bval</groupId>
<artifactId>bval-jsr</artifactId>
<version>2.0.0</version>
</dependency>
Gradle:
groovy
implementation 'org.apache.bval:bval-jsr:2.0.0'
public class User {
@NotNull
private String name;
// Getters and Setters
}
@Target({ ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = UniqueEmailValidator.class)
public @interface UniqueEmail {
String message() default "Email address must be unique";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class UniqueEmailValidator implements ConstraintValidator<UniqueEmail, String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
}
}
import org.apache.bval.jsr.ApacheValidatorFactory;
public class ValidationExample {
public static void main(String[] args) {
ApacheValidatorFactory validatorFactory = ApacheValidatorFactory.getDefault();
Validator validator = validatorFactory.getValidator();
User user = new User();
Set<ConstraintViolation<User>> violations = validator.validate(user);
if (!violations.isEmpty()) {
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}
}