Return Values

Dev.Hammy·2024년 4월 3일
0

반응형 스택에서 이에 상응하는 내용 보기

다음 표에서는 지원되는 컨트롤러 메서드 반환 값을 설명합니다. 모든 반환 값에 대해 반응형 유형이 지원됩니다.

컨트롤러 메소드 반환 값 설명

@ResponseBody

반환 값이 HttpMessageConverter 구현을 통해 변환되고 응답으로 작성됩니다. @ResponseBody 참조.

HttpEntity<B>, ResponseEntity<B>

전체 응답(포함된 HTTP 헤더 및 본문)을 지정하는 반환 값이 HttpMessageConverter 구현을 통해 변환되어 응답으로 작성됩니다. ResponseEntity 참조.

HttpHeaders

헤더와 본문이 없는 응답을 반환합니다.

ErrorResponse

본문에 세부 내용이 포함된 RFC 7807 오류 응답을 렌더링합니다. 오류 응답 참조

ProblemDetail

본문에 세부 내용이 포함된 RFC 7807 오류 응답을 렌더링합니다. 오류 응답 참조

String

ViewResolver 구현을 통해 해결할 뷰 이름 및 암시적 모델과 함께 사용됩니다. 명령 객체 및 @ModelAttribute 메소드를 통해 결정됩니다. 핸들러 메소드는 또한 Model 인수를 선언하여 모델을 프로그래밍 방식으로 보강할 수 있습니다. (명시적 등록 참조).

View

View 인스턴스를 사용하여 암시적 모델과 함께 렌더링합니다. 명령 객체 및 @ModelAttribute 메소드를 통해 결정됩니다. 핸들러 메소드는 또한 Model 인수를 선언하여 모델을 프로그래밍 방식으로 보강할 수 있습니다. (명시적 등록 참조).

java.util.Map, org.springframework.ui.Model

암시적 모델에 추가할 속성으로, 뷰 이름은 RequestToViewNameTranslator를 통해 암시적으로 결정됩니다.

@ModelAttribute

모델에 추가할 속성으로, 뷰 이름은 RequestToViewNameTranslator를 통해 암시적으로 결정됩니다.

참고: @ModelAttribute는 선택 사항입니다. 이 표의 맨 아래의 "기타 반환 값"을 참조하십시오.

ModelAndView 객체

사용할 뷰 및 모델 속성 및 필요한 경우 응답 상태입니다.

void

void 반환 유형(또는 null 반환 값)의 메소드는 ServletResponse, OutputStream 인수 또는 @ResponseStatus 주석이 있으면 응답을 완전히 처리한 것으로 간주

됩니다. 컨트롤러가 긍정적인 ETag 또는 lastModified 타임스탬프 확인을 수행한 경우도 마찬가지입니다. (컨트롤러 참조).

위의 조건 중 하나도 해당되지 않으면 void 반환 유형은 REST 컨트롤러의 "응답 본문 없음"이나 HTML 컨트롤러의 기본 뷰 이름 선택을 나타낼 수 있습니다.

DeferredResult<V>

임의의 스레드에서 DeferredResult를 통해 이전된 반환 값을 비동기적으로 생성합니다. 예를 들어 어떤 이벤트 또는 콜백의 결과로 생성됩니다. 비동기 요청DeferredResult 참조.

Callable<V>

Spring MVC 관리 스레드에서 Callable을 통해 위의 반환 값을 비동기적으로 생성합니다. 비동기 요청Callable 참조.

ListenableFuture<V>, java.util.concurrent.CompletionStage<V>, java.util.concurrent.CompletableFuture<V>

기본 서비스가 해당 값을 반환하는 경우와 같이 편리성을 위해 DeferredResult 대체로 사용될 수 있습니다.

ResponseBodyEmitter, SseEmitter

HttpMessageConverter 구현을 통해 응답으로 작성될 객체 스트림을 비동기적으로 전송합니다. ResponseEntity의 본문으로도 지원됩니다. 비동기 요청HTTP 스트리밍 참조.

StreamingResponseBody

응답 OutputStream에 비동기적으로 작성합니다. ResponseEntity의 본문으로도 지원됩니다. 비동기 요청HTTP 스트리밍 참조.

리액터 및 다른 반응형 유형 (ReactiveAdapterRegistry를 통해 등록)

단일 값 유형인 경우, 예를 들어 MonoDeferredResult를 반환하는 것과 유사합니다. 다중 값 유형인 경우, 예를 들어 Flux는 요청된 미디어 유형에 따라 스트림으로 처리되거나, "text/event-stream", "application/json+stream" 또는 기타로 수집되어 단일 값으로 렌더링됩니다. 비동기 요청반응형 유형 참조.

기타 반환 값

기타 모든 방법으로 해결되지 않은 반환 값은 모델 속성으로 처리됩니다. 그러나 BeanUtils#isSimpleProperty에 의해 간단한 유형으로 결정되는 경우에는 그렇지 않습니다.

0개의 댓글