@RestController는 메서드의 반환 타입으로 사용자가 정의한 클래스 타입을 사용할 수 있고, 이를 JSON이나 XML로 자동으로 처리가 가능하다.
1) 단순 문자열 반환
- @Controller는 문자열을 반환하는 경우에는 JSP파일의 이름으로 처리하지만, @RestController의 경우에는 순수한 데이터가 된다.
- @GetMapping에 사용된 produces 속성은 해당 메서드가 생상하는 MIME타입을 의미한다. 문자열로 직접 지정할 수도 있고, 메서드 내의 MediaType이라는 클래스를 이용할 수도 있다.
2) 객체의 반환
- 객체를 반환하는 작업은 JSON이나 XML을 이용한다.
- XML
- JSON
+ @GetMapping 이나 @RequestMapping의 produces 속성은 반드시 지정해야 하는 것은 아니므로 생략하는 것도 가능하다.
3. 컬렉션 타입의 객체 반환
- LIST
- MAP
: MAP을 이용하는 경우에는 key에 속하는 데이터는 XML로 변환되는 경우에 태그의 이름이 되기 때문에 문자열을 지정한다.
4. ResponseEntity 타입
- REST 방식으로 호출하는 경우는 화면 자체가 아니라 데이터 자체를 전송하는 방식으로 처리되기 때문에 데이터를 요청한 쪽에서는 정상적인 데이터인지 구분할 수 있는 확실한 방법을 제공해야 한다.
- ResponseEntity는 데이터와 함께 HTTP 헤더의 상태 메시지 등을 같이 전달하는 용도로 사용한다.
- HTTP 상태코드와 에러 미시지 등을 함께 데이터를 전달할 수 있기 때문에 받는 입장에서는 확실하게 결과를 알 수 있다.
'Java > Spring' 카테고리의 다른 글
[Spring] 스프링 MVC의 기본 구조 (0) | 2020.02.29 |
---|---|
[Spring] 페이징 처리(dto, mapper) (0) | 2020.02.18 |
[Spring] REST + @RestController 정리, 설정 (0) | 2020.02.13 |
[Spring] Transaction 정리, 설정 (0) | 2020.02.13 |
[Spring] AOP 정리 (0) | 2020.02.12 |