Назад к вопросам
Иннотех
Ростелеком
Госуслуги
Junior — Middle
65
Какое отличие между аннотациями @Controller и @RestController в Spring?
Компании, где спрашивали
Ви6 Сервисес
Secreate
Ответ от нейросети
sobes.tech AI
Аннотация @Controller в Spring используется для обозначения класса как контроллера в MVC-приложении. Методы такого контроллера обычно возвращают имя представления (view), которое будет отрендерено.
Аннотация @RestController — это специализированный вариант @Controller, которая автоматически добавляет аннотацию @ResponseBody ко всем методам класса. Это значит, что методы возвращают данные (обычно в формате JSON или XML) напрямую в тело HTTP-ответа, а не имя представления.
Пример:
@RestController
public class MyRestController {
@GetMapping("/api/data")
public MyData getData() {
return new MyData("value"); // будет сериализовано в JSON
}
}
@Controller
public class MyController {
@GetMapping("/page")
public String getPage() {
return "pageView"; // имя шаблона для рендеринга
}
}