더북(TheBook)

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;
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.