14.2.2 @ResponseBody
@ResponseBody 애너테이션은 자바 객체를 HTTP 응답 body 내용으로 매핑하는 역할을 합니다. @RequestBody처럼 XML이나 JSON 형식을 갖춘 문자열 형태로 응답할 때 이용합니다.
컨트롤러 내 요청 처리 메서드 수준으로 설정하며, 요청 처리 메서드의 반환 결과 값을 HTTP 응답 body 내용으로 전달합니다.
다음은 컨트롤러 내 요청 처리 메서드에 @ResponseBody를 선언한 예입니다. @ResponseBody가 선언된 메서드의 반환 결과 값은 JSON 형식으로 변환해서 응답합니다.
@ResponseBody를 적용한 예
Example02Controller.java
@Controller
@RequestMapping("/exam02")
public class Example02Controller {
@GetMapping
public @ResponseBody Person submit() {
Person person = new Person();
person.setName("HongGilSon");
person.setAge("20");
person.setEmail("Hong@naver.com");
System.out.println(person);
return person;
}
}
예를 들어 사용자 웹 요청 URL이 http://.../exam02이면 Example02Controller 컨트롤러의 요청 처리 메서드 submit()에서 설정된 person 객체의 값을 JSON 형식으로 변환해서 {“name”:
“HongGilSon”,“age”:“20”,“email”:“Hong@naver.com”}처럼 응답합니다.
▲ 그림 14-3 실행 결과