Использование Bean Validation (JSR-380)

Bean Validation (JSR-380) – это стандартизированный способ декларативной валидации данных в Java. Spring MVC поддерживает его «из коробки» через интеграцию с Hibernate Validator (референсная реализация JSR-380).
Для задания ограничений используются аннотации из пакета javax.validation.constraints (в Spring Boot 3+ – jakarta.validation.constraints). Например: @NotNull (поле не должно быть null), @Size(min=, max=) (размер строки или коллекции в заданном диапазоне), @Email (строка должна соответствовать формату email) и другие. Эти аннотации ставятся непосредственно над полями модели данных (Java Bean).
В Spring Boot для активации JSR-380 добавьте зависимость spring-boot-starter-validation, если она не подтянулась автоматически. Этот стартер включает Hibernate Validator. (При использовании spring-boot-starter-web на актуальных версиях Spring Boot валидатор обычно подключается автоматически, но в некоторых конфигурациях его требуется добавить явно.)
Принцип работы: при создании или обновлении объектов (например, при отправке формы) контейнер автоматического связывания (Data Binder) проверяет поля объекта на соответствие заданным аннотациям. Если какие-то ограничения нарушены, формируются ошибки валидации.

Пояснение:

JSR-380 (Bean Validation 2.0) определяет единый набор аннотаций для проверки допустимости значений в Java-объектах. В контексте Spring MVC это чаще всего применяется к объектам моделей, которые привязываются к данным веб-форм. Разработчик декларирует правила валидации с помощью аннотаций, а фреймворк автоматически проверяет их выполнение. Например, аннотация @NotNull указывает, что значение поля не может быть null, @Size(min=2, max=30) ограничивает длину строки (или размер коллекции) диапазоном, а @Email проверяет, что строка имеет формат адреса электронной почты
. Такие аннотации можно комбинировать: например, поле email пользователя может быть помечено сразу и @NotBlank (не пустое/не только пробелы), и @Email – тогда оно не должно быть пустым и обязано соответствовать паттерну email
. Ниже приведен простой пример класса-модели с Bean Validation-аннотациями:
public class User {
@NotNull
@Size(min = 2, max = 30)
private String name;
@Email
private String email;
// ... getters/setters ...
}
В этом примере имя пользователя должно быть от 2 до 30 символов и не быть null, а поле email – содержать валидный адрес электронной почты
. Если во входных данных эти ограничения нарушаются, Spring MVC при попытке привязать данные к объекту User зафиксирует ошибки.
Для использования Bean Validation в проекте Spring необходима реализация JSR-380. В современных Spring Boot-приложениях достаточно подключить зависимость spring-boot-starter-validation, которая транзитивно добавляет Hibernate Validator. (Если приложение создается через Spring Initializr и включена зависимость Validation, этот шаг происходит автоматически.) Hibernate Validator считывает аннотации @NotNull, @Size, @Email и прочие и применяется при валидации данных. Стоит отметить, что начиная с Spring Framework 6+ (и Spring Boot 3+), пакеты аннотаций сменились с javax.validation.* на jakarta.validation.* в связи с переходом на Jakarta EE, но сами названия аннотаций и их функциональность остались прежними.
Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:
Bean Validation (JSR-380) – это стандартизированный способ декларативной валидации данных в Java. Spring MVC поддерживает его «из коробки» через интеграцию с Hibernate Validator (референсная реализация JSR-380).
Для задания ограничений используются аннотации из пакета javax.validation.constraints (в Spring Boot 3+ – jakarta.validation.constraints). Например: @NotNull (поле не должно быть null), @Size(min=, max=) (размер строки или коллекции в заданном диапазоне), @Email (строка должна соответствовать формату email) и другие. Эти аннотации ставятся непосредственно над полями модели данных (Java Bean).
В Spring Boot для активации JSR-380 добавьте зависимость spring-boot-starter-validation, если она не подтянулась автоматически. Этот стартер включает Hibernate Validator. (При использовании spring-boot-starter-web на актуальных версиях Spring Boot валидатор обычно подключается автоматически, но в некоторых конфигурациях его требуется добавить явно.)
Принцип работы: при создании или обновлении объектов (например, при отправке формы) контейнер автоматического связывания (Data Binder) проверяет поля объекта на соответствие заданным аннотациям. Если какие-то ограничения нарушены, формируются ошибки валидации.

Пояснение:

JSR-380 (Bean Validation 2.0) определяет единый набор аннотаций для проверки допустимости значений в Java-объектах. В контексте Spring MVC это чаще всего применяется к объектам моделей, которые привязываются к данным веб-форм. Разработчик декларирует правила валидации с помощью аннотаций, а фреймворк автоматически проверяет их выполнение. Например, аннотация @NotNull указывает, что значение поля не может быть null, @Size(min=2, max=30) ограничивает длину строки (или размер коллекции) диапазоном, а @Email проверяет, что строка имеет формат адреса электронной почты
. Такие аннотации можно комбинировать: например, поле email пользователя может быть помечено сразу и @NotBlank (не пустое/не только пробелы), и @Email – тогда оно не должно быть пустым и обязано соответствовать паттерну email
. Ниже приведен простой пример класса-модели с Bean Validation-аннотациями:
public class User {
@NotNull
@Size(min = 2, max = 30)
private String name;
@Email
private String email;
// ... getters/setters ...
}
В этом примере имя пользователя должно быть от 2 до 30 символов и не быть null, а поле email – содержать валидный адрес электронной почты
. Если во входных данных эти ограничения нарушаются, Spring MVC при попытке привязать данные к объекту User зафиксирует ошибки.
Для использования Bean Validation в проекте Spring необходима реализация JSR-380. В современных Spring Boot-приложениях достаточно подключить зависимость spring-boot-starter-validation, которая транзитивно добавляет Hibernate Validator. (Если приложение создается через Spring Initializr и включена зависимость Validation, этот шаг происходит автоматически.) Hibernate Validator считывает аннотации @NotNull, @Size, @Email и прочие и применяется при валидации данных. Стоит отметить, что начиная с Spring Framework 6+ (и Spring Boot 3+), пакеты аннотаций сменились с javax.validation.* на jakarta.validation.* в связи с переходом на Jakarta EE, но сами названия аннотаций и их функциональность остались прежними.
https://webprogr.ru/~FIw8O
Короткая ссылка на новость:https://webprogr.ru/~FIw8O


Последние новости

Использование Bean Validation (JSR-380)

Bean Validation (JSR-380) – это стандартизированный способ декларативной валидации данных в Java. Spring MVC поддерживает его «из коробки» через интеграцию с Hibernate Validator (референсная реализация JSR-380).
Для задания ограничений используются аннотации из пакета javax.validation.constraints (в Spring Boot 3+ – jakarta.validation.constraints). Например: @NotNull (поле не должно быть null), @Size(min=, max=) (размер строки или коллекции в заданном диапазоне), @Email (строка должна соответствовать формату email) и другие. Эти аннотации ставятся непосредственно над полями модели данных (Java Bean).
В Spring Boot для активации JSR-380 добавьте зависимость spring-boot-starter-validation, если она не подтянулась автоматически. Этот стартер включает Hibernate Validator. (При использовании spring-boot-starter-web на актуальных версиях Spring Boot валидатор обычно подключается автоматически, но в некоторых конфигурациях его требуется добавить явно.)
Принцип работы: при создании или обновлении объектов (например, при отправке формы) контейнер автоматического связывания (Data Binder) проверяет поля объекта на соответствие заданным аннотациям. Если какие-то ограничения нарушены, формируются ошибки валидации.

Пояснение:

JSR-380 (Bean Validation 2.0) определяет единый набор аннотаций для проверки допустимости значений в Java-объектах. В контексте Spring MVC это чаще всего применяется к объектам моделей, которые привязываются к данным веб-форм. Разработчик декларирует правила валидации с помощью аннотаций, а фреймворк автоматически проверяет их выполнение. Например, аннотация @NotNull указывает, что значение поля не может быть null, @Size(min=2, max=30) ограничивает длину строки (или размер коллекции) диапазоном, а @Email проверяет, что строка имеет формат адреса электронной почты
. Такие аннотации можно комбинировать: например, поле email пользователя может быть помечено сразу и @NotBlank (не пустое/не только пробелы), и @Email – тогда оно не должно быть пустым и обязано соответствовать паттерну email
. Ниже приведен простой пример класса-модели с Bean Validation-аннотациями:
public class User {
@NotNull
@Size(min = 2, max = 30)
private String name;
@Email
private String email;
// ... getters/setters ...
}
В этом примере имя пользователя должно быть от 2 до 30 символов и не быть null, а поле email – содержать валидный адрес электронной почты
. Если во входных данных эти ограничения нарушаются, Spring MVC при попытке привязать данные к объекту User зафиксирует ошибки.
Для использования Bean Validation в проекте Spring необходима реализация JSR-380. В современных Spring Boot-приложениях достаточно подключить зависимость spring-boot-starter-validation, которая транзитивно добавляет Hibernate Validator. (Если приложение создается через Spring Initializr и включена зависимость Validation, этот шаг происходит автоматически.) Hibernate Validator считывает аннотации @NotNull, @Size, @Email и прочие и применяется при валидации данных. Стоит отметить, что начиная с Spring Framework 6+ (и Spring Boot 3+), пакеты аннотаций сменились с javax.validation.* на jakarta.validation.* в связи с переходом на Jakarta EE, но сами названия аннотаций и их функциональность остались прежними.
Рейтинг@Mail.ru