Этап 3 из 10 · ≈ 6 ч

Spring MVC и REST-контроллеры

Основа с Junior

Путь запроса через DispatcherServlet, контроллеры, преобразование JSON, фильтры и перехватчики.

Что важно знать

  • @RestController, @GetMapping, @PathVariable, @RequestBody.
  • DTO вместо сущностей в API.
  • Фильтры (сервлет) против перехватчиков (Spring MVC).
  • Один поток на запрос во встроенном Tomcat — размер пула.

Критерии освоения

Junior ≈ 6 ч

  • Пишет REST-контроллеры с правильными методами, кодами и DTO

Практика. Реализовать CRUD API заказов на Spring MVC с DTO и тестами через MockMvc.

Middle ≈ 4 ч

  • Описывает путь запроса через фильтры, DispatcherServlet и перехватчики
  • Настраивает встроенный сервер и пул потоков под нагрузку

Практика. Добавить фильтр корреляции запросов с trace_id в MDC и перехватчик замера времени.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Какая аннотация объединяет @Controller и @ResponseBody, чтобы методы возвращали данные прямо в тело ответа?Junior

@RestController = @Controller + @ResponseBody: возвращаемое значение каждого метода сериализуется в тело ответа (обычно JSON через Jackson), а не трактуется как имя представления.

Полный разбор
Как в Spring Boot 3 возвращать ошибки REST API в едином формате?Middle

@RestControllerAdvice с @ExceptionHandler централизует обработку, а ответ — ProblemDetail (стандарт RFC 9457, application/problem+json): type, title, status, detail, instance и свои поля.

Полный разбор
Чем HTTP GET отличается от POST?Junior

GET — получить ресурс: безопасный (не меняет состояние) и идемпотентный, параметры в URL, ответ кэшируется. POST — отправить данные на обработку или создать ресурс: не идемпотентный, данные в теле.

Полный разбор
Каков жизненный цикл сервлета?Middle

Сервлет — объект, обрабатывающий HTTP-запросы в контейнере (Tomcat). Цикл: init один раз → service (doGet, doPost…) на каждый запрос в разных потоках → destroy при остановке.

Полный разбор
Чем ответы 401, 403 и 404 отличаются и что возвращать на запрос чужого ресурса?Junior

401 Unauthorized — личность не установлена: нет токена или он неверный. 403 Forbidden — личность известна, но прав нет. 404 Not Found — ресурс не найден.

Полный разбор
Что такое Post/Redirect/Get и как сделать его в Spring MVC?Middle

PRG: после успешного POST сервер отвечает редиректом на GET-страницу результата. Обновление страницы повторит безопасный GET, а не POST — заказ не создастся дважды.

Полный разбор
Что делает DispatcherServlet в Spring MVC?Junior

DispatcherServlet — единая точка входа (front controller): принимает запрос, через HandlerMapping находит метод контроллера, вызывает его через HandlerAdapter, превращает результат в ответ (HttpMessageConverter или представление), обрабатывает исключения.

Полный разбор
Что означает код ответа 404?Junior

404 Not Found — ресурса по этому адресу нет. Это группа 4xx — ошибка на стороне клиента; 5xx — ошибка сервера.

Полный разбор

Разборы темы

← Вся карта «Spring»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования