Как создать пользовательские проверки в приложении Spring Boot
В Spring Boot проверка относится к процессу проверки того, соответствуют ли входные данные, полученные приложением, определенным правилам или критериям, определенным приложением. Проверка является неотъемлемой частью создания надежных и надежных приложений, поскольку она помогает предотвратить ошибки и обеспечить согласованность и целостность данных.
Spring Boot предоставляет встроенную поддержку проверки с использованием фреймворка Bean Validation, этот фреймворк определяет некоторый набор аннотаций.

Некоторые общие аннотации проверки:
@NotNul
: данное поле не должно быть пустым.@NotEmpty
: данное поле не должно быть пустым.@NotBlank
: заданное строковое поле не должно быть пустой строкой.@Min
и@Max
: данное числовое поле действительно только тогда, когда его значение выше или ниже определенного значения.@Pattern
: заданное строковое поле допустимо только тогда, когда оно соответствует определенному регулярному выражению.@Email
: данное строковое поле должно быть действительным адресом электронной почты.
Обязательная зависимость для проверки:

Сотрудник.java

СотрудникКонтроллер

Добавьте @Valid
аннотацию к параметрам метода и полям, которые мы хотим проверить. Аннотация @Valid указывает Spring Boot автоматически проверять входные данные на основе указанных нами ограничений проверки.
Тестирование вышеуказанной реализации:


Выше поля имени и электронной почты не соответствуют указанным критериям.
Чтобы собрать все ошибки, нам нужен «ExceptionHandler», и он приведен ниже:

Я обрабатываю MethodArgumentNotValidException
сквозной обработчик исключений.

Проверка переменных пути и параметров запроса:
Проверка переменных пути и параметров запроса работает немного по-другому.
мы добавляем аннотацию ограничения @Min непосредственно к параметру метода в контроллере Spring :

Если мы попытаемся запустить приложение без метода обработчика исключений, оно выдаст ConstaintViolationException. Чтобы собрать исключение, нам нужно добавить следующий метод:
@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity<String> handleValidationError(ConstraintViolationException exception) {
return new ResponseEntity<>("not valid due to validation error: " + exception.getMessage(), HttpStatus.BAD_REQUEST);
}

мы можем использовать тот же вышеописанный процесс для параметров запроса.
Создание пользовательской проверки
Создайте собственный класс проверки

Добавьте аннотацию @Target, чтобы указать целевое поле, @Retention, чтобы указать политику хранения, @Constraint, чтобы создать настраиваемое ограничение.
Аннотация @Target является стандартной аннотацией Java и используется для ограничения использования аннотаций определенными типами элементов.
Создайте класс EmployeeTypeValidator, который реализует Constraint Validator для проверки правильности данных в поле:

Добавьте класс ValiadeEmployeeType в качестве аннотации над полем, для которого мы реализовали пользовательскую проверку.

Мы внедрили пользовательскую проверку для employeeType, employeeType должен быть либо постоянным, либо контрактным.
Если мы добавим какой-либо другой текст, кроме того, который мы упомянули для employeeType, он выдаст сообщение об ошибке, как показано ниже:

Выше указано «employeeType» как случайный текст.
Если мы передаем employeeTypes как постоянный или контрактный, вывод будет таким:

Обратитесь по ссылкам для других концепций Spring Boot:
Доступ на основе ролей Spring Security с Spring Boot
Аутентификация и авторизация Spring Security с помощью JWT
Учебное пособие по весеннему АОП
Учебник по логированию Spring Boot
Централизованная конфигурация в Spring Boot
javinpaul Domenico Nicoli Trey Huffine Arslan Ahmad Soma Mehmet Ozkaya The Educative Team