@RestController объединяет @Controller и @ResponseBody: результаты методов обычно записываются в тело HTTP-ответа через message converters. У @Controller строка обычно обозначает имя представления.
В чём разница между @Controller и @RestController?
@RestController объединяет @Controller и @ResponseBody: результаты методов обычно записываются в тело HTTP-ответа через message converters. У @Controller строка обычно обозначает имя представления.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
@RestController объединяет @Controller и @ResponseBody: результаты методов обычно записываются в тело HTTP-ответа через message converters. У @Controller строка обычно обозначает имя представления.
Для JSON API обычно используют @RestController, а для серверных HTML-шаблонов — @Controller. Это не ограничение формата навсегда: контроллер может возвращать ResponseEntity или пометить отдельный метод @ResponseBody. Фактическое представление зависит от типа результата, согласования content type и установленных converters. Наличие @RestController само по себе не задаёт URL — нужны mappings.