Встроенные ограничения в проверке бобов
@Null Аннотированный элемент должен быть нулевым
@Notnull Аннотированный элемент не должен быть нулевым
@AssertTrue Аннотированный элемент должен быть правдой
@AssertFalse Аннотированный элемент должен быть ложным
@Min (значение) Аннотированный элемент должен быть числом, а его значение должно быть больше или равным указанному минимальному значению.
@Max (значение) Аннотированный элемент должен быть числом, а его значение должно быть меньше или равным указанному максимальному значению.
@Decimalmin (значение) Аннотированный элемент должен быть числом, а его значение должно быть больше или равным указанному минимальному значению
@Decimalmax (значение) аннотированный элемент должен быть числом, а его значение должно быть меньше или равным указанному максимальному значению
@Size (max =, min =) Размер аннотированного элемента должен быть в пределах указанного диапазона.
@Digits (целое число, фракция) Аннотированный элемент должен быть числом, и его значение должно быть в приемлемого диапазона.
@Past Аннотированный элемент должен быть датой прошлой
@Future аннотированный элемент должен быть будущей датой
@Pattern (regex =, flag =) аннотированный элемент должен соответствовать указанному регулярному выражению
Уличный валидатор прилагается ограничение
@Notblank (message =) Убедитесь, что строка не является нулевой и должна быть больше 0
@Email Аннотированный элемент должен быть адресом электронной почты
@Length (min =, max =) Размер аннотированной строки должен быть в пределах указанного диапазона.
@Notempty. Комментарийная строка должна быть не пустой
@Range (min =, max =, message =) аннотированный элемент должен быть в соответствующем диапазоне
Эффекты и преимущества
Посмотрим на последний эффект сначала:
открытый класс Пользовательский {@Password Private String Password; @Email private string email;}Выше используется две пользовательские аннотации для проверки пароля и электронной почты. Преимущество этого: одно определение используется везде. При изменении правил проверки вам просто нужно изменить аннотации. Если вы настраиваете его, используйте тег, предоставленный Hibernate:
@Pattern (regexp = "...") private string email;
Если вам внезапно необходимо изменить Regexp правила проверки после написания многих классов, в настоящее время рабочая нагрузка будет намного больше.
выполнить
Во -первых, введите зависимость с гибернатной проверкой и добавьте:
<!-hibernate vardator-> <!-Структура проверки Hibernate-> <Depective> <groupId> org.hibernate </GroupId> <ArtifactId> hibernate-validator </artifactid> <sersion> 5.2.2.final </version> </jeplidence>
Валидация Hibernate - это эталонная реализация JSR, поэтому используйте ее для проверки бобов.
Настройка аннотации проверки разделена на три шага:
Первым шагом является создание аннотаций:
@Target ({Method, Field, Annotation_type, Constructor, Parameter})@harement (Runtime)@Doctiped@constraint (valytedby = {emailvalidator.class}) public @Interface по электронной почте {string message () по умолчанию «Это не действительный формат электронной почты»; /** * @return Регулярное выражение в соответствии с */string regexp () по умолчанию "[a-za-z0-9 ._%+-]+ @[a-za-z0-9]+//. [a-za-z] {2,4}"; Class <?> [] Groups () default {}; Класс <? Extends Payload> [] PAYLOAD () DEFALT {}; /*** Определяет несколько аннотаций {@link} на том же элементе. * * @see size */ @target ({method, field, annotation_type, constructor, parameter}) @retention (runtime) @documented @Interface List {email [] value (); }} Создайте аннотации через ключевое слово @Interface, и каждый метод является параметром аннотации. Например, в приведенном выше коде вы можете использовать @Email(regexp="...",message="...") Вы можете игнорировать остальное, просто скопируйте его напрямую. Следует отметить, что @Constraint(validatedBy = { EmailValidator.class }) , здесь указывает класс проверки аннотации и заменяет имя класса в соответствии с фактической ситуацией.
Второй шаг - создать класс проверки:
Общедоступный класс EmailValidator реализует constraintValidator <email, string> {private String Regexp; @Override public void инициализируется (Email constrainterantation) {this.regexp = constraintantation.regexp (); } @Override public boolean isValid (строковое значение, контекст constraintValidatorContext) {if (value == null) {return true;} if (value.matches (regexp)) {return true; } вернуть false; }} Здесь просто реализуйте интерфейс ConstraintValidator<Email, String> и создайте валидатор. Метод инициализации получает аннотированное значение regexp, а метод ISVALID проверяется. Если он соответствует регулярному выражению, оно возвращает истину, в противном случае он возвращает ложь.
Следует отметить, что когда значение пустое, то есть, когда объект проверки не инициализируется, необходимо записать соответствующие правила проверки, в противном случае будет сообщена ошибка. В приведенном выше коде, написано:
if (value == null) {return true;}То есть, когда объект проверки пуст, он возвращает успех.
Третий шаг - написать сообщение об ошибке по умолчанию. Фактически, этот шаг был сделан на первом шаге по умолчанию, поэтому этот шаг не должен быть сделан.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.