@Controller отмечает класс как контроллер Spring MVC. Этот класс обычно возвращает имена представлений (view names), которые затем обрабатываются view resolvers для отображения пользовательского интерфейса (например, HTML страниц). @Controller часто используется для создания веб-приложений с серверным рендерингом.
@RestController является специализированным вариантом @Controller. Он автоматически добавляет к каждому методу аннотацию @ResponseBody. Это означает, что методы @RestController по умолчанию возвращают данные (например, JSON или XML), а не имена представлений. @RestController идеально подходит для создания RESTful веб-сервисов, которые предоставляют данные клиентам (например, фронтенд-приложениям или другим сервисам).
Основное отличие:
@Controller: Возвращает имена представлений.@RestController: Возвращает данные (автоматически добавляет @ResponseBody).Пример @Controller:
java
Пример @RestController:
java