14.2.3 @RestController
@RestController 애너테이션은 컨트롤러에 @ResponseBody가 추가된 것으로 JSON 형태로 데이터를 반환합니다. @Controller와는 다르게 @RestController는 반환 값에 자동으로 @ResponseBody가 붙어 자바 객체가 HTTP 응답 body 내용에 매핑되어 전달됩니다.
@RestController를 사용하면 @ResponseBody를 사용하지 않아도 되지만, @Controller일 때는 반드시 @ResponseBody를 선언해야 합니다.
앞서 살펴본 컨트롤러 내 요청 처리 메서드에 @ResponseBody를 선언한 예에서 @Controller 대신 @RestController로 선언하면 @ResponseBody를 생략할 수 있고, @ResponseBody처럼 요청 처리 메서드의 반환 결과 값을 JSON 형식으로 변환해서 응답합니다.
@RestController를 적용한 예(Example03Controller.java)
@RestController
@RequestMapping("/exam03")
public class Example03Controller {
@GetMapping
public Person submit() {
Person person = new Person();
person.setName("HongGilSon");
person.setAge("20");
person.setEmail("Hong@naver.com");
System.out.println(person);
return person;
}
}