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