Встречается на собеседованиях • сегодня
В чем разница между ResponseEntity и ResponseBody
`ResponseEntity` и `ResponseBody` используются в Spring для обработки HTTP-ответов, но имеют разные цели:
1. **`@ResponseBody`** – аннотация, которая указывает, что возвращаемое значение метода должно быть напрямую записано в тело HTTP-ответа (без View-резолвера). Часто используется с `@RestController` (где она уже включена по умолчанию).
Пример:
```java
@GetMapping("/user")
@ResponseBody
public User getUser() {
return new User("John");
}
```
2. **`ResponseEntity`** – это обертка над телом ответа, позволяющая дополнительно управлять HTTP-статусом, заголовками и другими метаданными ответа.
Пример:
```java
@GetMapping("/user")
public ResponseEntity getUser() {
User user = new User("John");
return ResponseEntity.ok()
.header("Custom-Header", "value")
.body(user);
}
```
**Ключевые отличия:**
- `ResponseEntity` дает полный контроль над ответом (статус, заголовки), а `@ResponseBody` только сериализует объект в тело.
- `ResponseEntity` – это объект, `@ResponseBody` – аннотация.
- В `@RestController` `@ResponseBody` не нужен, так как включен по умолчанию.

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