<dependency>
<groupId>io.valdr</groupId>
<artifactId>valdr-bean-validation-api</artifactId>
<version>2.0.1</version>
</dependency>
public interface ValdrValidated {
}
@ValdrConstraint(UserValidationRules.class)
public class User implements ValdrValidated {
}
public class UserValidationRules {
@ValdrConstraintFor("username")
@NotEmpty(message = "{NotEmpty.user.username}")
private String username;
@ValdrConstraintFor("email")
@Email(message = "{Email.user.email}")
private String email;
}
properties
public class ValdrValidator implements Validator {
private final Validator defaultValidator;
public ValdrValidator() {
Configuration<?> configuration = Validation.byDefaultProvider().configure();
configuration.messageInterpolator(new ResourceBundleMessageInterpolator(
new PlatformResourceBundleLocator("ValidationMessages")));
ValidatorFactory factory = configuration.buildValidatorFactory();
defaultValidator = factory.getValidator();
}
@Override
public <T> Set<ConstraintViolation<T>> validate(T object, Class<?>... groups) {
if (object instanceof ValdrValidated) {
Set<ConstraintViolation<T>> violations = defaultValidator.validate(object, groups);
// ...
return violations;
}
return Collections.emptySet();
}
}
@Configuration
public class ValidationConfig {
@Bean
public javax.validation.Validator valdrValidator() {
return new ValdrValidator();
}
}