<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
public class User {
private String username;
private Integer age;
}
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class UserValidator implements ConstraintValidator<ValidUser, User> {
@Override
public void initialize(ValidUser constraintAnnotation) {
}
@Override
public boolean isValid(User user, ConstraintValidatorContext context) {
return user.getUsername() != null && user.getAge() >= 18 && user.getAge() <= 65;
}
}
import javax.validation.Constraint;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = UserValidator.class)
public @interface ValidUser {
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
public class ValidationExample {
public static void main(String[] args) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User();
user.setAge(20);
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}