Найти в Дзене
Java interview

Разница между @Controller и @RestController аннотациями в Spring

Оглавление

В Spring Framework, Controller и RestController являются различными типами контроллеров, предназначенными для обработки HTTP-запросов, но с разными целями и поведением.

@Controller

Обычный Controller в Spring предназначен для обработки HTTP-запросов и возвращения результата, который может быть представлен в виде HTML-страницы, JSON, XML или любого другого формата.

В примере на запрос по url /hello будет возвращено thymeleaf view "hello".

@RestController

RestController расширяет функциональность Controller и добавляет аннотации @ResponseBody, что означает, что результаты методов контроллера автоматически сериализуются в формат JSON или XML и напрямую возвращаются клиенту.

-2

Пример с аналогичным поведением, но с аннотацией @Controller:

-3