Method Arguments

Dev.Hammy·2024년 4월 3일
0

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

다음 표에서는 지원되는 컨트롤러 메서드 인수에 대해 설명합니다. 어떤 인수에도 반응형 유형이 지원되지 않습니다.

JDK 8의 java.util.Optionalrequired 속성(예: @RequestParam, @RequestHeader 등)이 있는 주석과 함께 메소드 인수로 지원되며 required=false와 동일합니다.

컨트롤러 메소드 인자 설명

WebRequest, NativeWebRequest

서블릿 API를 직접 사용하지 않고 요청 매개변수와 요청 및 세션 속성에 대한 일반적인 접근.

jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse

특정 요청 또는 응답 유형 선택 — 예를 들어, ServletRequest, HttpServletRequest, 또는 스프링의 MultipartRequest, MultipartHttpServletRequest 등.

jakarta.servlet.http.HttpSession

세션의 존재를 강제합니다. 따라서 이러한 인수는 결코 null이 아닙니다. 세션 액세스는 스레드 안전하지 않습니다. 여러 요청이 세션에 동시에 액세스하도록 허용되는 경우 RequestMappingHandlerAdapter 인스턴스의 synchronizeOnSession 플래그를 true로 설정하는 것이 좋습니다.

jakarta.servlet.http.PushBuilder

프로그래밍 방식의 HTTP/2 리소스 푸시를 위한 Servlet 4.0 푸시 빌더 API. Servlet 사양에 따르면 클라이언트가 해당 HTTP/2 기능을 지원하지 않으면 주입된 PushBuilder 인스턴스가 null일 수 있습니다.

java.security.Principal

현재 인증된 사용자 — 알려진 경우 특정 Principal 구현 클래스.

이 인수는 게으르게 해결되지 않습니다. 즉, 사용자가 HttpServletRequest#getUserPrincipal를 통해 기본 해결로 전환되기 전에 사용자 정의 리졸버를 통해 이를 해결할 수 있도록 주석이 달려 있습니다. 예를 들어 Spring Security AuthenticationPrincipal을 구현하고 이를 통해 HttpServletRequest#getUserPrincipal에 주입되며, @AuthenticationPrincipal로 주석이 달려 있지 않은 경우 Spring Security 리졸버를 통해 Authentication#getPrincipal로 해결됩니다.

HttpMethod

요청의 HTTP 메소드.

java.util.Locale

가장 구체적인 LocaleResolver에 의해 결정된 현재 요청 로캘(설정된 LocaleResolver 또는 LocaleContextResolver).

java.util.TimeZone + java.time.ZoneId

현재 요청과 관련된 시간대, LocaleContextResolver에 의해 결정됨.

java.io.InputStream, java.io.Reader

Servlet API에 의해 노출된 원시 요청 본문에 대한 액세스.

java.io.OutputStream, java.io.Writer

Servlet API에 의해 노출된 원시 응답 본문에 대한 액세스.

@PathVariable

URI 템플릿 변수에 액세스하기 위해. URI 패턴 참조.

@MatrixVariable

URI 경로 세그먼트의 이름-값 쌍에 액세스하기 위해. 매트릭스 변수 참조.

@RequestParam

멀티파트 파일을 포함한 서블릿 요청 매개변수에 액세스하기 위해. 매개변수 값은 선언된 메소드 인수 유형으로 변환됨. @RequestParam멀티파트 참조.

간단한 매개변수 값의 경우 @RequestParam의 사용은 선택 사항입니다. 이 표의 마지막 부분인 “다른 모든 인수”를 참조하십시오.

@RequestHeader

요청 헤더에 액세스하기 위해. 헤더 값은 선언된 메소드 인수 유형으로 변환됨. @RequestHeader 참조.

@CookieValue

쿠키에 액세스하기 위해. 쿠키 값은 선언된 메소드 인수 유형으로 변환됨. @CookieValue 참조.

@RequestBody

HTTP 요청 본문에 액세스하기 위해. 본문 내용은 HttpMessageConverter 구현을 사용하여 선언된 메소드 인수 유형으로 변환됨. @RequestBody 참조.

HttpEntity<B>

요청 헤더 및 본문에 액세스하기 위해. 본문은 HttpMessageConverter를 사용하여 변환됨. HttpEntity 참조.

@RequestPart

multipart/form-data 요청의 파트에 액세스하기 위해. 파트의 본문은 HttpMessageConverter를 사용하여 변환됨. 멀티파트 참조.

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

HTML 컨트롤러에서 사용되는 및 뷰 렌더링 시 템플릿에 노출되는 모델에 액세스하기 위해.

RedirectAttributes

리다이렉트 시 사용할 속성 지정 (즉, 쿼리 문자열에 추가됨) 및 리다이렉트 후 요청까지 일시적으로 저장할 플래시 속성 지정. 리다이렉트 속성플래시 속성 참조.

@ModelAttribute

모델에서 기존 속성에 액세스하기 위해 (없으면 인스턴스화됨) 데이터 바인딩 및 유효성 검사가 적용됨. @ModelAttribute, 모델, DataBinder 참조.

@ModelAttribute의 사용은 선택 사항입니다(예: 속성 설정). 이 표의 “다른 모든 인수”를 참조하십시오.

Errors, BindingResult

명령 객체(즉, @ModelAttribute 인수) 또는 @RequestBody 또는 @RequestPart 인수의 유효성 검증 및 데이터 바인딩에서의 오류에 액세스하기 위해. 유효성 검증 후 바로 오류 또는 BindingResult 인수를 선언해야 함.

SessionStatus + 클래스 수준의 @SessionAttributes

폼 처리 완료 표시를 위해, 클래스 수준의 @SessionAttributes 주석을 통해 선언된 세션 속성의 정리를 트리거합니다. 자세한 내용은 @SessionAttributes 참조.

UriComponentsBuilder

현재 요청의 호스트, 포트, 스키마, 컨텍스트 경로 및 서블릿 매핑의 리터럴 부분에 상대적인 URL을 준비하기 위해. URI 링크 참조.

@SessionAttribute

세션에 저장된 모델 속성과는 달리 세션 속성에 액세스하기 위해. 자세한 내용은 @SessionAttribute 참조.

@RequestAttribute

요청 속성에 액세스하기 위해. 자세한 내용은 @RequestAttribute 참조.

다른 모든 인수

이 표의 이전 항목과 일치하지 않는 메소드 인자가 간단한 유형인 경우 (BeanUtils#isSimpleProperty에 의해 결정됨), @RequestParam으로 해결됩니다. 그렇지 않으면 @ModelAttribute로 해결됩니다.

0개의 댓글