Поле строки моего адреса электронной почты помечено javax.validation.constraints.Email
:
import javax.validation.constraints.Email;
public class MyModel {
@Email
private String email;
}
В настоящее время org.hibernate.validator.internal.constraintvalidators.AbstractEmailValidator
hibernate-validator автоматически проверяет его, когда вызывается соответствующая конечная точка api:
@Controller("/v1")
@Validated
public class MyController {
...
@Put(uri = "/{id}")
@Produces("application/json")
public IdType updateEntity(@Valid MyModel model) {
return delegate.updateEntity(model);
}
}
Как я могу зарегистрировать свой собственный класс для проверки поля электронной почты с помощью валидатора Micronaut, все еще используя исходную аннотацию javax.validation.constraints.Email
?
Вот как выглядит мой настраиваемый валидатор ограничений:
import javax.inject.Singleton;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.constraints.Email;
@Singleton
public class EmailValidator implements ConstraintValidator<Email, String> {
@Override
public void initialize(Email constraintAnnotation) {}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
return value.contains("@");
}
}
Версия Микронавта: 1.1.4