@ResponseBody는 Spring Boot에서 서버의 응답 데이터를 HTTP 응답 본문에 직접 담아 보내도록 지시하는 어노테이션이에요.
- 일반적으로 Spring MVC에서는 컨트롤러 메서드가 String을 반환하면 뷰 이름으로 처리돼서 JSP나 HTML 파일에 그 결과를 다루게 된다.그런데 @ResponseBody를 붙이면 뷰를 찾지 않고, 반환값을 그대로 HTTP 응답 본문에 담아 전송합니다.
- 주로 JSON, XML, 문자열 등 API 응답을 만들 때 사용.
예시
@GetMapping("/hello")
@ResponseBody
public String sayHello() {
return "안녕하세요!";
}
사용자 브라우저에 "안녕하세요!"라는 텍스트가 그대로 출력. 뷰를 찾지 않아요.
@RestController와의 관계
@RestController는 사실 @Controller + @ResponseBody를 합쳐놓은 어노테이션이에요.
그래서 @RestController를 클래스에 붙이면, 그 안의 모든 메서드에 자동으로 @ResponseBody가 적용돼요.
언제 쓰면 좋을까?
- REST API를 만들 때
- JSON 데이터를 클라이언트에 보내야 할 때
- Ajax 요청에 응답할 때