@RestController
- Spring 4에서 Rest API 또는 Web API를 개발하기 위해 등장한 어노테이션
- 이전 버전의 @Controller와 @ResponseBody를 포함한다.
Rest Controller를 사용하기 위해서는 MesageConvertor가 중요하다. 예를 들면 MessageConvertor는 외부에서 전달 받은 Json 메서드를 내부에서 사용할 수 있는 객체로 변환하거나 Controller를 리턴한 객체가 클라이언트에게 Json으로 변환해서 전달할 수 있도록 하는 역할을 수행한다.
MessageConvertor
- 자바 객체와 HTTP 요청/ 응답 바디를 변환하는 역할
- @ResponseBody, @RequestBody
- @EnableWebMvc로 인한 기본 설정
- WebMvcConfigurationSupport를 사용하여 Spring MVC 구현
- Default MesssageConvertor를 제공
- https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java의 addDefaultHttpMessageConvertors 메서드 항목 참조
MessageConvertor 종류
JSON 응답하기
- 컨트롤러의 메소드에서는 JSON으로 변환될 객체를 반환한다.
- jackson라이브러리를 추가할 경우 객체를 JSON으로 변환하는 메시지 컨버터가 사용되도록 @EnableWebMvc에서 기본으로 설정되어 있다.
- jackson라이브러리를 추가하지 않으면 JSON메시지로 변환할 수 없어 500 오류가 발생한다.
- 사용자가 임의의 메시지 컨버터(MessageConvertor)를 사용하도록 하려면 WebMvcConfigurationAdapter의 configureMessageConverters 메소드를 오버라이딩 해야한다.
참조 URL
'Java > Spring' 카테고리의 다른 글
Maven이란? (0) | 2020.07.10 |
---|---|
스웨거 (Swagger)란? (0) | 2020.07.01 |
Post 방식으로 데이터 전송시 한글이 깨지는 문제 (0) | 2020.06.30 |
Spring Error (0) | 2020.06.30 |
레이어드 아키텍처(Layerd architecture)란? (0) | 2020.06.30 |