Встречается на собеседованиях • сегодня

В чем разница между @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 с представлениями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы