Нужен Bean Validation provider и запуск валидации DTO: например, @Valid у параметра @RequestBody. Одна @NotNull на поле не заставляет Spring проверять каждый объект автоматически.
Если @NotNull повешена на поле DTO, приходящего в контроллер, что нужно сделать, чтобы валидация начала работать?
Нужен Bean Validation provider и запуск валидации DTO: например, @Valid у параметра @RequestBody. Одна @NotNull на поле не заставляет Spring проверять каждый объект автоматически.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нужен Bean Validation provider и запуск валидации DTO: например, @Valid у параметра @RequestBody. Одна @NotNull на поле не заставляет Spring проверять каждый объект автоматически.
Для Spring Boot обычно подключают validation starter; в актуальных версиях используют jakarta.validation-аннотации. Пример параметра: create(@Valid @RequestBody CreateRequest request). Вложенные объекты требуют каскадной @Valid, а группы — согласованной @Validated-настройки. Ошибки возвращают понятным 400-ответом без раскрытия внутренних деталей. Проверка null отличается от непустой строки: для последней нужен подходящий constraint, например @NotBlank.
Источник: docs.spring.io.