핸들러 메소드 아규먼트: 주로 요청 그 자체 또는 요청에 들어있는 정보를 받아오는데 사용한다.
핸들러 메소드 아규먼트 | 설명 |
WebRequest NativeWebRequest ServletRequest(Response) HttpServletRequest(Response) |
요청 또는 응답 자체에 접근 가능한 API |
InputStream Reader OutputStream Writer |
요청 본문을 읽어오거나, 응답 본문을 쓸 때 사용할 수 있는 API |
PushBuilder | 스프링 5, HTTP/2 리소스 푸쉬에 사용 |
HttpMethod | GET, POST, ... 등에 대한 정보 |
Locale TimeZone ZoneId |
LocaleResover가 분석한 요청의 Locale 정보 |
@PathVariable | URI 템플릿 변수 읽을 때 사용 |
@MatrixVariable | URI 경로 중에 키/값 쌍을 읽어올 때 사용 |
@RequestParam | 서블릿 요청 매개변수 값을 선언한 메소드 아규먼트 타입으로 변환해준다. 단순 타입인 경우에 이 애노테이션을 생략할 수 있다. |
@RequestHeader | 요청 헤더 값을 선언한 메소드 아규먼트 타입으로 변환해준다. |
핸들러 메소드 리턴: 주로 응답 또는 모델을 랜더링할 뷰에 대한 정보를 제공하는데 사용한다.
핸들러 메소드 리턴 | 설명 |
@ResponseBody | 리턴 값을 HttpMessageConverter를 사용해 응답 본문으로 사용한다. |
HttpEntity ResponseEntity |
응답 본문 뿐 아니라 헤더 정보까지, 전체 응답을 만들 때 사용한다. |
String | ViewResolver를 사용해서 뷰를 찾을 때 사용할 뷰 이름. |
Map Model |
(RequestToViewNameTranslator를 통해서)암묵적으로 판단한 뷰 렌더링할 때 사용할 모델 정보 |
@ModelAttribute | (RequestToViewNameTranslator를 통해서)암묵적으로 판단한 뷰 렌더링할 때 사용할 모델 정보에 추가한다. 이 애노테이션은 생략할 수 있다. |
참고