- jpa
- java
- Iteration반복문
- list
- AWS
- redis
- ELB
- 자료구조
- 리눅스rabbitmq설치
- 인스턴스
- javaIteration
- javamap반복
- yumpackage
- rabbitmq설치명령어
- 차이점
- 어노테이션
- spring
- db
- instance
- Cognito
- map
- Heap
- Amazon
- cloudfront
- AWS CloudFormation
- dynamodb
- CloudFormation
- rabbitmq설치방법
- REST
- S3
- Today
- Total
You are a developer, not a coder.
@Controller, @RestController 차이점 본문
@Controller와 @RestController의 차이
HTTP Response Body가 생성되는 방식의 차이.
기존의 MVC @Controller는 View 기술을 사용하지만, @RestController는 객체를 반환할때 객체 데이터는 바로 JSON/XML 타입의 HTTP 응답을 직접 리턴하게 된다.
@Controller의 메서드에 @ResponseBody를 선언해서 객체를 리턴 하는 방법도 있다.
실행 흐름 순서
@Controller의 실행 흐름
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller -> View -> Dispatcher Servlet -> Response -> Client
@ResponseBody의 실행 흐름
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller (ResponseBody)-> Response -> Client
@RestController의 실행 흐름
Client -> HTTP Request -> Dispatcher Servlet -> Handler Mapping -> RestController (자동 ResponseBody 추가)-> HTTP Response ->
Client
ResponseEntity
별도의 View를 제공하지 않는 형태로 서비스를 실행한다. 예외의 상황에서 문제가 발생 할 수 있다.
개발자가 직접 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스로 404, 500같은 HTTP 상태 코드를 전송하려는 데이터와 함께 전송 가능 하므로 세밀한 제어를 원하는 경우 사용 가능하다.
'FrameWorks > Spring (Boot포함)' 카테고리의 다른 글
JPA N+1 해결방법? (0) | 2023.05.18 |
---|---|
json serialize 에서 ignore 하고 싶다면? (0) | 2020.12.28 |
JPA, Hibernate, Mybatis 요약, 정리 (0) | 2020.04.21 |
Oauth 2.0 (2) | 2020.03.13 |