Выбор ответа Junior Spring MVC и REST спрашивают часто обновлено

@Controller и @RestController

Вопрос

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

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Добавляет @ResponseBody ко всем методам контроллера. @RestController это @Controller плюс @ResponseBody: возвращаемое значение пишется в тело через HttpMessageConverter.

Варианты ответа

  1. Добавляет @ResponseBody ко всем методам контроллераправильный ответ
  2. @RestController работает только с JSON, а @Controller с XML
  3. @RestController обрабатывает запросы асинхронно
  4. Ничем, это синонимы для разных стилей проекта

Разбор

@RestController это @Controller плюс @ResponseBody: возвращаемое значение пишется в тело через HttpMessageConverter. Обычный @Controller по умолчанию возвращает имя представления для шаблонизатора. Формат зависит от конвертеров и заголовка Accept, а не от аннотации. Асинхронности аннотация не добавляет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.