<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.5.Final</version>
</dependency>
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class AgeValidator implements ConstraintValidator[Age, Int] {
override def isValid(value: Int, context: ConstraintValidatorContext): Boolean = {
if (value == null) {
return true;
}
return value >= 18;
}
}
import javax.validation.Constraint;
import scala.annotation.meta.field;
import scala.annotation.meta.getter;
import scala.annotation.meta.setter;
@(classOf[AgeValidator])
@(getter)
@(setter)
(@(field @field))
public @interface Age {
String message() default "Invalid age";
Class body() default {};
Class[] groups() default {};
Class[] payload() default {};
}
public class Person {
@Age
private Integer age;
// getter and setter methods
}
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
...
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Person person = new Person();
person.setAge(20);
Set<ConstraintViolation[Person]> violations = validator.validate(person);
if (violations.isEmpty()) {
} else {
for (ConstraintViolation[Person] violation : violations) {
System.out.println(violation.getMessage());
}
}