Spring trainee

Чем @RestController отличается от @Controller?

Ответ

@RestController = @Controller + @ResponseBody. То есть результаты методов сразу сериализуются HttpMessageConverter'ами (по умолчанию Jackson в JSON) и отдаются в body ответа. @Controller сам по себе ожидает имя view (для рендера HTML).

Разбор: @RestController — это композиция @Controller и @ResponseBody, поэтому возвращаемые объекты конвертируются HttpMessageConverter'ами (по умолчанию Jackson в JSON) прямо в тело ответа, а не трактуются как имя view. Дистракторы подменяют @ResponseBody на @RequestMapping, искажают формат на XML и приписывают автоматическую обёртку в ResponseEntity и фиксированный статус.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться