Встречается на собеседованиях • сегодня
В чем разница между @Controller и @RestController в Spring
@Controller и @RestController — это аннотации Spring для обработки HTTP-запросов, но с ключевым отличием в возвращаемых данных.
@Controller:
- Используется для традиционных MVC-приложений.
- Возвращает имя представления (view), которое затем разрешается в HTML-страницу.
- Для возврата JSON/XML нужно явно использовать
@ResponseBodyнад методом.
Пример:
java
@Controller
public class MyController {
@GetMapping("/greet")
public String greet() {
return "greet-page"; // имя view (например, greet-page.html)
}
}@RestController:
- Комбинация
@Controller+@ResponseBodyна уровне класса. - Возвращаемые значения методов автоматически конвертируются в JSON/XML.
- Используется для RESTful API.
Пример:
java
@RestController
public class MyApiController {
@GetMapping("/api/greet")
public String greet() {
return "Hello, World!"; // возвращает JSON: "Hello, World!"
}
}Итог: @Controller — для веб-страниц, @RestController — для REST API.

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