Loading...
Spring Framework Reference Documentation 7.0.2의 Method Arguments의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
다음 table은 지원되는 controller method argument를 설명합니다. Reactive type은 어떤 argument에도 지원되지 않습니다.
JDK 8의 java.util.Optional은 required attribute를 가진 어노테이션(예: @RequestParam, @RequestHeader,
기타)과 결합된 method argument로 지원되며, required=false와 동일합니다.
| Controller method argument | Description |
|---|---|
WebRequest, NativeWebRequest | Servlet API를 직접 사용하지 않고 request parameter와 request 및 session attribute에 대한 일반적인 access를 제공합니다. |
jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse | ServletRequest, HttpServletRequest 또는 Spring의 MultipartRequest, MultipartHttpServletRequest와 같이 특정 request 또는 response type을 선택합니다. |
jakarta.servlet.http.HttpSession | session의 존재를 강제합니다. 결과적으로, 이러한 argument는 절대 null이 아닙니다. session access는 thread-safe하지 않음을 유의하십시오. 여러 request가 동시에 session에 access하도록 허용되는 경우 RequestMappingHandlerAdapter instance의 synchronizeOnSession flag를 true로 설정하는 것을 고려하십시오. |
jakarta.servlet.http.PushBuilder | programmatic HTTP/2 resource push를 위한 Servlet 4.0 push builder API입니다. 이 API는 Servlet 6.1부터 deprecated되었음을 유의하십시오. |
java.security.Principal | 현재 인증된 user — 가능하다면 알려진 특정 Principal implementation class일 수 있습니다. 이 argument는 custom resolver가 기본 resolution인 HttpServletRequest#getUserPrincipal로 fallback하기 전에 이를 resolve할 수 있도록 어노테이션이 적용된 경우, eager하게 resolve되지 않음을 유의하십시오. 예를 들어, Spring Security의 Authentication은 Principal을 구현하며, HttpServletRequest#getUserPrincipal을 통해 이와 같이 주입됩니다. 그러나 @AuthenticationPrincipal로도 어노테이션이 적용된 경우에는 Authentication#getPrincipal을 통해 custom Spring Security resolver에 의해 resolve됩니다. |
HttpMethod | request의 HTTP method입니다. |
java.util.Locale | 사용 가능한 가장 구체적인 LocaleResolver(실제로는 설정된 LocaleResolver 또는 LocaleContextResolver)에 의해 결정되는 현재 request locale입니다. |
java.util.TimeZone + java.time.ZoneId | LocaleContextResolver에 의해 결정되는, 현재 request와 연관된 time zone입니다. |
java.io.InputStream, java.io.Reader | Servlet API에 의해 노출되는 raw request body에 access하기 위한 것입니다. |
java.io.OutputStream, java.io.Writer | Servlet API에 의해 노출되는 raw response body에 access하기 위한 것입니다. |
@PathVariable | URI template variable에 access하기 위한 것입니다. URI patterns를 참조하십시오. |
@MatrixVariable | URI path segment의 name-value pair에 access하기 위한 것입니다. Matrix Variables를 참조하십시오. |
@RequestParam | multipart file을 포함한 Servlet request parameter에 access하기 위한 것입니다. parameter value는 선언된 method argument type으로 변환됩니다. @RequestParam과 Multipart를 참조하십시오. 간단한 parameter value의 경우 @RequestParam 사용은 선택 사항임을 유의하십시오. 이 table의 끝부분에 있는 “Any other argument”를 참조하십시오. |
@RequestHeader | request header에 access하기 위한 것입니다. header value는 선언된 method argument type으로 변환됩니다. @RequestHeader를 참조하십시오. |
@CookieValue | cookie에 access하기 위한 것입니다. cookie value는 선언된 method argument type으로 변환됩니다. @CookieValue를 참조하십시오. |
@RequestBody | HTTP request body에 access하기 위한 것입니다. body content는 HttpMessageConverter implementation을 사용하여 선언된 method argument type으로 변환됩니다. @RequestBody를 참조하십시오. |
HttpEntity<B> | request header 및 body에 access하기 위한 것입니다. body는 HttpMessageConverter로 변환됩니다. HttpEntity를 참조하십시오. |
@RequestPart | multipart/form-data request의 part에 access하기 위한 것이며, part body를 HttpMessageConverter로 변환합니다. Multipart를 참조하십시오. |
java.util.Map, org.springframework.ui.Model, org.springframework.ui.ModelMap | HTML controller에서 사용되며 view rendering의 일부로 template에 노출되는 model에 access하기 위한 것입니다. |
RedirectAttributes | redirect가 발생하는 경우(즉, query string에 추가되도록) 사용할 attribute와 redirect 이후의 request까지 임시로 저장될 flash attribute를 지정합니다. Redirect Attributes와 Flash Attributes를 참조하십시오. |
@ModelAttribute | model에 있는 기존 attribute(없으면 instantiate됨)에 access하기 위한 것이며, data binding과 validation이 적용됩니다. @ModelAttribute와 Model, DataBinder를 참조하십시오. @ModelAttribute 사용은 선택 사항임을 유의하십시오(예: 해당 attribute를 설정하기 위해). 이 table의 끝부분에 있는 “Any other argument”를 참조하십시오. |
Errors, BindingResult | command object(즉, @ModelAttribute argument)의 validation 및 data binding에서 발생한 error 또는 @RequestBody나 @RequestPart argument의 validation에서 발생한 error에 access하기 위한 것입니다. validation이 적용된 method argument 바로 다음에 Errors 또는 BindingResult argument를 선언해야 합니다. |
SessionStatus + class-level @SessionAttributes | form processing이 완료되었음을 표시하기 위한 것으로, class-level @SessionAttributes 어노테이션을 통해 선언된 session attribute의 정리를 trigger합니다. 자세한 내용은 @SessionAttributes를 참조하십시오. |
UriComponentsBuilder | 현재 request의 host, port, scheme, context path 및 servlet mapping의 literal part를 기준으로 URL을 준비하기 위한 것입니다. URI Links를 참조하십시오. |
@SessionAttribute | class-level @SessionAttributes 선언의 결과로 session에 저장된 model attribute와는 대조적으로 임의의 session attribute에 access하기 위한 것입니다. 자세한 내용은 @SessionAttribute를 참조하십시오. |
@RequestAttribute | request attribute에 access하기 위한 것입니다. 자세한 내용은 @RequestAttribute를 참조하십시오. |
| Any other argument | method argument가 이 table의 앞부분에 있는 값 중 어느 것과도 매칭되지 않고 simple type인 경우(BeanUtils#isSimpleProperty에 의해 결정됨), @RequestParam으로 resolve됩니다. 그렇지 않으면 @ModelAttribute로 resolve됩니다. |
Handler Methods
Return Values