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

В чем разница между аннотациями RestController и Controller

@RestController — это специализированная версия @Controller, которая автоматически добавляет аннотацию @ResponseBody ко всем методам, упрощая создание RESTful веб-сервисов. В отличие от @Controller, где методы возвращают имена представлений (view), @RestController возвращает данные напрямую в теле HTTP-ответа (обычно JSON/XML).

Пример с @Controller:

java
@Controller
public class MyController {
    @GetMapping("/greet")
    public String greet() {
        return "greetPage"; // Возвращает имя представления (view)
    }
}

Пример с @RestController:

java
@RestController
public class MyApiController {
    @GetMapping("/api/greet")
    public String greet() {
        return "Hello, World!"; // Возвращает строку как тело ответа
    }
}

Ключевое отличие:

  • @Controller + @ResponseBody = @RestController.
  • @Controller используется для традиционных MVC с рендерингом представлений, а @RestController — для REST API, где данные сериализуются напрямую.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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