Bean Validation определяет модель метаданных и API для проверки JavaBean . Источником метаданных являются аннотации , с возможностью переопределять и расширять метаданные с помощью дескрипторов проверки XML .
Первоначально определенная как часть Java EE , версия 2 также нацелена на работу в приложениях Java SE .
Java Bean Validation (JSR 303) изначально был фреймворком , одобренным JCP 16 ноября 2009 года и принятым в качестве части спецификации Java EE 6. Команда Hibernate предоставляет Hibernate Validator в качестве эталонной реализации Bean Validation, а также создала Bean Validation TCK, которую должна пройти любая реализация JSR 303.
Текущая версия
Bean Validation 2.0 определена в JSR 380, одобренном 2017-07-31. Этот основной релиз использует возможности языка Java 8, которые очень полезны для целей Bean Validation. Поэтому Java 8 требуется как минимальная версия Java.
Другие изменения включают в себя:
- Поддержка проверки элементов контейнера путем аннотирования аргументов типа параметризованных типов, например, List<@Positive Integer> positiveNumbers; сюда также входит:
- Более гибкая каскадная проверка типов коллекций; например, теперь можно проверять значения и ключи карт: Map<@Valid CustomerType, @Valid Customer> customersByType
- Поддержка java.util.Необязательно
- Поддержка типов свойств, объявленных JavaFX
- Поддержка пользовательских типов контейнеров путем подключения дополнительных экстракторов значений
- Поддержка новых типов данных даты/времени для @Past и @Future; детальный контроль над текущим временем и часовым поясом, используемым для проверки
- Новые встроенные ограничения: @Email, @NotEmpty, @NotBlank, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero, @PastOrPresent и @FutureOrPresent
- Все встроенные ограничения теперь отмечены как повторяемые.
- Имена параметров извлекаются с помощью отражения
- ConstraintValidator#initialize() — метод по умолчанию
- Пространство имен для XML-дескрипторов Bean Validation было изменено на http://xmlns.jcp.org/xml/ns/validation/configuration [ постоянная нерабочая ссылка ] для META-INF/validation.xml и http://xmlns.jcp.org/xml/ns/validation/mapping [ постоянная нерабочая ссылка ] для файлов сопоставления ограничений
Предыдущая версия
Bean Validation 1.1 (JSR 349) улучшает первоначальную версию 1.0 (JSR 303). Значительные изменения [1] включают:
- Проверка аргументов метода и возвращаемого значения
- Внедрение зависимости
- Более открытый процесс разработки спецификации
Окончательный выпуск спецификации 1.1 состоялся 24.05.2013.
Ссылки
- ^ Эммануэль, Бернард. "Bean Validation 1.1 goals". Red Hat, Inc. Получено 17 августа 2014 г.
Дальнейшее чтение
- Официальный сайт Открытая разработка JSR 303, 349 и 380
- Видеозапись презентации на Devoxx, *Bean Validation 2.0 — вы разместили свои аннотации повсюду! Гуннар Морлинг*
- Интервью с руководителем отдела технических характеристик Эммануэлем Бернаром
- JSR 303 Страница
- Валидатор Hibernate
- Документация TCK по проверке бобов
- Как запустить Bean Validation TCK Архивировано 25.08.2010 на Wayback Machine