Loading...
Spring Framework Reference Documentation 7.0.2의 Return Values의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
다음 table은 지원되는 controller method return value를 설명합니다. Reactive type은 모든 return value에 대해 지원됩니다.
| Controller method return value | Description |
|---|---|
@ResponseBody | return value는 HttpMessageConverter 구현을 통해 변환되어<br>response에 기록됩니다. @ResponseBody를 참조하십시오. |
HttpEntity<B>, ResponseEntity<B> | 전체 response(HTTP header와 body 포함)를 지정하는 return value는<br>HttpMessageConverter 구현을 통해 변환되어 response에 기록됩니다.<br>ResponseEntity를 참조하십시오. |
HttpHeaders | header만 있고 body가 없는 response를 반환하기 위한 것입니다. |
ErrorResponse, ProblemDetail | body에 상세 정보를 포함하는 RFC 9457 error response를 렌더링하기 위해,<br>Error Responses를 참조하십시오. |
String | ViewResolver 구현으로 resolve되어 implicit<br>model과 함께 사용되는 view name입니다. implicit model은 command object와<br>@ModelAttribute method를 통해 결정됩니다. handler<br>method는 또한 Model argument를 선언하여 programmatically하게 model을 확장할 수 있습니다<br>(Explicit Registrations를 참조하십시오). |
View | command object와 @ModelAttribute method를 통해 결정되는<br>implicit model과 함께 렌더링에 사용할 View instance입니다. handler method는 또한<br>Model argument를 선언하여 programmatically하게 model을 확장할 수 있습니다<br>(Explicit Registrations를 참조하십시오). |
java.util.Map, org.springframework.ui.Model | view name이 RequestToViewNameTranslator를 통해 암묵적으로<br>결정되는 implicit model에 추가할 attribute입니다. |
@ModelAttribute | view name이 RequestToViewNameTranslator를 통해 암묵적으로<br>결정되는 model에 추가할 attribute입니다.<br>@ModelAttribute는 optional이라는 점에 유의하십시오. 이 table의 끝에 있는<br>"Any other return value"를 참조하십시오. |
ModelAndView object | 사용할 view와 model attribute 및 optional한 response status입니다. |
FragmentsRendering, Collection<ModelAndView> | 각기 고유한 view와 model을 가진 하나 이상의 fragment를 렌더링하기 위한 것입니다.<br>자세한 내용은 HTML Fragments를 참조하십시오. |
void | void return type(또는 null return value)을 가진 method는 또한 ServletResponse, OutputStream argument,<br>또는 @ResponseStatus annotation을 가진 경우 response를 완전히 처리한 것으로 간주됩니다. controller가<br>양수의 ETag 또는 lastModified timestamp check를 수행한 경우에도 마찬가지입니다<br>(자세한 내용은 Controllers를 참조하십시오).<br>위의 어느 것도 해당하지 않는 경우, void return type은 REST controller에 대해서는 “no response body”를,<br>HTML controller에 대해서는 기본 view name 선택을 나타낼 수도 있습니다. |
DeferredResult<V> | 예를 들어, 어떤 event나 callback의 결과로서,<br>임의의 thread에서 앞의 return value 중 하나를 asynchronous하게 생성합니다. Asynchronous Requests와 DeferredResult를 참조하십시오. |
Callable<V> | Spring MVC가 관리하는 thread에서 위의 return value 중 어떤 것이든<br>asynchronous하게 생성합니다. Asynchronous Requests와 Callable를 참조하십시오. |
ListenableFuture<V>,<br>java.util.concurrent.CompletionStage<V>,<br>java.util.concurrent.CompletableFuture<V> | DeferredResult의 대안으로, (예를 들어, 하위 service가<br>이들 중 하나를 반환하는 경우와 같은) 편의를 제공합니다. |
ResponseBodyEmitter, SseEmitter | 객체 stream을 asynchronous하게 emit하여 HttpMessageConverter 구현으로<br>response에 기록합니다. 또한 ResponseEntity의 body로도 지원됩니다.<br>Asynchronous Requests와 HTTP Streaming을 참조하십시오. |
StreamingResponseBody | response OutputStream에 asynchronous하게 기록합니다. 또한<br>ResponseEntity의 body로도 지원됩니다. Asynchronous Requests와 HTTP Streaming을 참조하십시오. |
Reactor 및 ReactiveAdapterRegistry를 통해 등록된 기타 reactive type | 예를 들어 Mono와 같은 single value type은 DeferredResult를 반환하는 것과<br>비교할 수 있습니다. 예를 들어 Flux와 같은 multi-value type은 요청된<br>media type(예: "text/event-stream", "application/json+stream")에 따라 stream으로<br>처리될 수 있으며, 그렇지 않은 경우 List로 수집되어 single value로 렌더링됩니다. Asynchronous Requests와<br>Reactive Types를 참조하십시오. |
| Other return values | return value가 다른 어떤 방식으로도 resolve되지 않으면,<br>simple type이 아니라고 BeanUtils#isSimpleProperty에 의해<br>판단되지 않는 한 model attribute로 처리되며, simple type인 경우에는<br>resolve되지 않은 상태로 남습니다. |
Method Arguments
Type Conversion