@Controller используется для обработки HTTP-запросов в Spring MVC и обычно возвращает имя представления (например, JSP, Thymeleaf), которое будет отображено на клиенте. Он работает совместно с ViewResolver.
@RestController является комбинацией @Controller и @ResponseBody. Он указывает, что возвращаемое значение метода должно быть преобразовано непосредственно в тело HTTP-ответа. Чаще всего используется для создания RESTful веб-сервисов, возвращающих данные в формате JSON или XML.
Ключевые отличия:
@Controller возвращает имя представления, @RestController возвращает данные.@ResponseBody: @RestController неявно включает @ResponseBody для всех методов.@Controller подходит для традиционных веб-приложений с серверным рендерингом, @RestController — для создания RESTful API.Пример @Controller:
java
Пример @RestController:
java