Ответ
Аннотация @ResponseBody указывает, что возвращаемое значение метода-обработчика запроса должно быть напрямую записано в тело HTTP-ответа, а не интерпретировано как имя представления (view).
Как работает:
- Spring использует
HttpMessageConverterдля преобразования возвращаемого объекта (например, DTO,String) в формат ответа (JSON, XML), основываясь на заголовкеAcceptзапроса или конфигурации. - Часто используется в сочетании с
@RequestMappingили@GetMappingв контроллерах.
Пример:
@Controller
public class MyController {
@GetMapping("/user/{id}")
@ResponseBody
public User getUser(@PathVariable Long id) {
return userService.findById(id); // Объект User будет автоматически преобразован в JSON
}
}
Ключевой момент: @RestController является мета-аннотацией, которая включает @ResponseBody для всех методов класса.