Spring

Расскажите про аннотации @Controller и @RestController. Чем они отличаются? Как вернуть ответ со своим статусом (например 213)?


Аннотация @Controller и @RestController являются частями фреймворка Spring и используются для создания веб-контроллеров, которые обрабатывают HTTP-запросы и возвращают HTTP-ответы. @Controller: Эта аннотация используется для создания класса, который обрабатывает HTTP-запросы и возвращает представления (HTML-страницы) или модели представления. Контроллеры, помеченные аннотацией @Controller, обычно используются в веб-приложениях, которые работают с шаблонами представления, такими как JSP или Thymeleaf. Пример использования @Controller: @Controller public class MyController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("message", "Привет, мир!"); return "hello"; } } @RestController: Эта аннотация является расширением аннотации @Controller и используется для создания класса, который обрабатывает HTTP-запросы и возвращает данные в формате JSON или XML. Контроллеры, помеченные аннотацией @RestController, обычно используются в RESTful веб-сервисах, где данные представлены в виде ресурсов. Пример использования @RestController: @RestController public class MyRestController { @GetMapping("/hello") public ResponseEntity<String> hello() { return ResponseEntity.status(213).body("Привет, мир!"); } } Чтобы вернуть ответ со своим статусом (например, 213), вы можете использовать класс ResponseEntity из Spring Framework. Вы можете создать экземпляр ResponseEntity, указав статус и тело ответа. Затем вы можете вернуть этот объект из метода контроллера. В примере выше метод hello() возвращает ResponseEntity со статусом 213 и телом "Привет, мир!". Вы можете использовать другие методы класса ResponseEntity, такие как header() или headers(), чтобы добавить заголовки к ответу, если это необходимо.


Копировать ссылку