Если @NotNull повешена на поле DTO, приходящего в контроллер, что нужно сделать, чтобы валидация начала работать?

Нужен Bean Validation provider и запуск валидации DTO: например, @Valid у параметра @RequestBody. Одна @NotNull на поле не заставляет Spring проверять каждый объект автоматически.

Короткий ответ

Что ответить на собеседовании

Нужен 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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее