Встречается на собеседованиях • сегодня
В чем разница между @Controller и @RestController
@Controller и @RestController — это аннотации Spring для обработки HTTP-запросов.
@Controller
- Возвращает имя представления (view), которое будет отрендерено (например, JSP, Thymeleaf).
- Для возврата данных в формате JSON/XML нужно использовать
@ResponseBodyдля методов.
@RestController
- Комбинация
@Controller+@ResponseBodyна уровне класса. - Все методы автоматически возвращают данные (JSON/XML), а не представление.
Пример:
java
@Controller
public class MyController {
@GetMapping("/view")
public String getView() {
return "home"; // Возвращает имя шаблона (home.html)
}
@GetMapping("/data")
@ResponseBody
public String getData() {
return "Hello"; // Возвращает строку как ответ
}
}
@RestController
public class MyRestController {
@GetMapping("/api")
public String getApi() {
return "API Response"; // Автоматически в JSON
}
}Итог: @RestController удобен для REST API, @Controller — для MVC с представлениями.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы